中级会员
- 积分
- 394
- 威望
- 214
- 贡献
- 108
- 兑换币
- 124
- 注册时间
- 2013-3-17
- 在线时间
- 36 小时
- 毕业学校
- 武汉工程大学邮电与信息学院
|
程序一直在TIM中断中不能跳出,而且如果注释掉TIM中断的话,程序又会一直处于输入捕捉中,不能正常进行PIT中断。中断初始化如下- void PIT_init() {
-
- PITCFLMT=0X00; // 禁用PIT模块
- PITCE|=0X01; // 定时器0通道使能位置1
- PITMUX_PMUX0=0; // 连接微定时器0与定时器0
- PITFLT|=0X01; // 定时器0强制装载位置1
-
- PITMTLD0=31; // 微定时器0装载寄存器 32
- PITLD0=9999; // 定时器0装载寄存器 10000
- // 32*10000/64000000=0.005s
- PITINTE|=0X01; // 允许定时器0中断使能
- PITTF|=0X01; // 定时器0中断标志位清零
-
- PITCFLMT=0X80; // 使能PIT模块
-
- }
- /***************************************/
- void TIM_init()
- {
- TIOS=0x00;
- TSCR1=0x80;
- TCTL4=0x88;
- TIE=0x0A;
- TFLG1=0x0ff;
- }
复制代码 中断部分如下- #pragma CODE_SEG __NEAR_SEG NON_BANKED
- void interrupt 66 PIT0_ISR(void)
- {
- PACTL_PAEN=0; // 输入脉冲计数禁止
- PACNT=0X0000; // 脉冲数据寄存器清零
- PACTL_PAEN=1; // 输入计数允许
- PITTF_PTF0=1; //清中断标志位
- //PIT_CNT++;
- Angle_Process();
- SetCarDTY();
- SetMotorvoltage(nleft,nright);
-
- /*if(PIT_CNT==1)
- {
- }
- else if(PIT_CNT==2)
-
- else if(PIT_CNT==3)
-
- else if(PIT_CNT==4)
-
-
- else if(PIT_CNT==5)
- {
- speed_Control();
- speed_out();
- }
- else if(PIT_CNT==1)
- {
- PIT_CNT=0;
- } */
- }
- void interrupt 9 TIM1(void)
- {
- TFLG1_C1F=1;
- i_1++;
- float_change_char(temp_buf,100);
- sci_transmit(temp_buf,10);
- }
- void interrupt 11 TIM3(void)
- {
- TFLG1_C3F=1;
- i_2++;
- float_change_char(temp_buf,101);
- sci_transmit(temp_buf,10);
- }
- #pragma CODE_SEG DEFUALT
复制代码
|
|