智能车制作

标题: 求帮助,写程序总是硬件发生内核错误 [打印本页]

作者: stxhb    时间: 2014-2-20 15:52
标题: 求帮助,写程序总是硬件发生内核错误
昨天,今天写程序总是跑飞。调节速度PID时,程序总是出各种问题。电机运行10s左右就不动了,然后今天我就只留下测编码器脉冲的程序,结果还是一样,串口显示******内核发生硬件错误******。求帮助,我编程不好,不知道是啥问题。
#include "common.h"

GPIO_InitTypeDef gpio_init_struct;
FTM_InitTypeDef ftm_init_param;
PIT_InitTypeDef pit_init_param;
LPTMR_InitTypeDef lptmr_init_param;
uint16_t GetFreq;
uint16_t GetCnt;

void pit_isr0();

void main (void)
{
   DisableInterrupts;

  gpio_init_struct.GPIO_PTx = PTA;      //PORTA
  gpio_init_struct.GPIO_Pins = GPIO_Pin9;     //引脚9
  gpio_init_struct.GPIO_Dir = DIR_OUTPUT;        //输出
  gpio_init_struct.GPIO_Output=OUTPUT_L;
  LPLD_GPIO_Init(gpio_init_struct);

  ftm_init_param.FTM_Ftmx = FTM1;
  ftm_init_param.FTM_PwmFreq = 10000;//100Khz
  ftm_init_param.FTM_Mode = FTM_MODE_PWM;
  //初始化PIT
  pit_init_param.PIT_Pitx = PIT0;
  pit_init_param.PIT_PeriodMs = 20;//20ms
  pit_init_param.PIT_Isr = pit_isr0;
  //LPTMR_MODE_PLACC脉冲累加模式
  //禁用中断
  //无中断函数
  lptmr_init_param.LPTMR_Mode = LPTMR_MODE_PLACC;
  lptmr_init_param.LPTMR_PluseAccInput = LPTMR_ALT1;
  lptmr_init_param.LPTMR_Isr = NULL;
  //FTM,PIT,LPTMR初始化
  LPLD_PIT_Init(pit_init_param);
  LPLD_PIT_EnableIrq(pit_init_param); //使能PIT中断
  LPLD_FTM_Init(ftm_init_param);
  LPLD_LPTMR_Init(lptmr_init_param);
  LPLD_FTM_PWM_Enable(FTM1,FTM_Ch0,0,PTA8,ALIGN_LEFT);

  GetFreq=0;
  GetCnt=0;

  LPLD_GPIO_Output_b(PTA,9,0);
  LPLD_FTM_PWM_ChangeDuty(FTM1, FTM_Ch0,1000);

  EnableInterrupts;

  while(1)
  {  
     asm("nop");
  }
}

void pit_isr0()
{
    GetFreq=LPLD_LPTMR_GetPulseAcc();
    printf("%d\n",GetFreq);

    LPLD_LPTMR_ResetCounter();       //复位LPTMR0 counter
    LPLD_LPTMR_Init(lptmr_init_param);
}

作者: Element.    时间: 2014-2-20 16:47
一步一步仿真调试,看那一步进入硬件中断
作者: stxhb    时间: 2014-2-20 17:03
Element. 发表于 2014-2-20 16:47
一步一步仿真调试,看那一步进入硬件中断

太烦了,每次写程序都容易出错,还是这种不好找的错误


作者: stxhb    时间: 2014-3-1 11:37
本帖已终结,是单片机坏了
作者: 天荒地老    时间: 2014-3-27 08:17
stxhb 发表于 2014-3-1 11:37
本帖已终结,是单片机坏了

单片机坏了?难道我的也是?

作者: stxhb    时间: 2014-3-27 09:12
天荒地老 发表于 2014-3-27 08:17
单片机坏了?难道我的也是?

反正我的是单片机问题,换了一个就好了

作者: 天荒地老    时间: 2014-3-27 09:16
stxhb 发表于 2014-3-27 09:12
反正我的是单片机问题,换了一个就好了

哦哦,lptmr测速调试了老长时间,用的也是拉普兰德的库,而且是带Z的芯片,却一直读数是0。。。。前两天就出现这种情况,说多了都是泪呀

作者: stxhb    时间: 2014-3-27 14:27
天荒地老 发表于 2014-3-27 09:16
哦哦,lptmr测速调试了老长时间,用的也是拉普兰德的库,而且是带Z的芯片,却一直读数是0。。。。前两天就 ...

lptmr  K60不带Z的,要修改LPLD的底层库才行,貌似他寄存器配置错了

作者: stxhb    时间: 2014-3-27 14:29
stxhb 发表于 2014-3-27 14:27
lptmr  K60不带Z的,要修改LPLD的底层库才行,貌似他寄存器配置错了

带Z的话,就看看线,引脚,或者程序问题了





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2