智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1303|回复: 1
打印 上一主题 下一主题

中断计数问题

[复制链接]

4

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
394
威望
214
贡献
108
兑换币
124
注册时间
2013-3-17
在线时间
36 小时
毕业学校
武汉工程大学邮电与信息学院
跳转到指定楼层
1#
发表于 2013-6-20 18:58:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序一直在TIM中断中不能跳出,而且如果注释掉TIM中断的话,程序又会一直处于输入捕捉中,不能正常进行PIT中断。中断初始化如下
  1. void PIT_init() {
  2.   
  3.     PITCFLMT=0X00;                     // 禁用PIT模块
  4.     PITCE|=0X01;                       // 定时器0通道使能位置1
  5.     PITMUX_PMUX0=0;                    // 连接微定时器0与定时器0
  6.     PITFLT|=0X01;                      // 定时器0强制装载位置1
  7.       
  8.     PITMTLD0=31;                      // 微定时器0装载寄存器    32
  9.     PITLD0=9999;                      // 定时器0装载寄存器      10000
  10.                                        // 32*10000/64000000=0.005s
  11.     PITINTE|=0X01;                     // 允许定时器0中断使能
  12.     PITTF|=0X01;                       // 定时器0中断标志位清零
  13.      
  14.     PITCFLMT=0X80;                     // 使能PIT模块
  15.          
  16. }
  17. /***************************************/
  18. void TIM_init()
  19. {
  20. TIOS=0x00;
  21. TSCR1=0x80;
  22. TCTL4=0x88;
  23. TIE=0x0A;
  24. TFLG1=0x0ff;
  25. }
复制代码
中断部分如下
  1. #pragma CODE_SEG __NEAR_SEG NON_BANKED
  2. void interrupt 66 PIT0_ISR(void)
  3. {   
  4.   PACTL_PAEN=0;                          // 输入脉冲计数禁止
  5.   PACNT=0X0000;                          // 脉冲数据寄存器清零
  6.   PACTL_PAEN=1;                          // 输入计数允许  
  7.   PITTF_PTF0=1;           //清中断标志位
  8.   //PIT_CNT++;   
  9.         Angle_Process();
  10.   SetCarDTY();
  11.         SetMotorvoltage(nleft,nright);
  12.        
  13.   /*if(PIT_CNT==1)
  14.     {
  15.     }
  16.   else if(PIT_CNT==2)
  17.       
  18.   else if(PIT_CNT==3)
  19.          
  20.   else if(PIT_CNT==4)
  21.       
  22.       
  23.   else if(PIT_CNT==5)      
  24.       {         
  25.                 speed_Control();
  26.                 speed_out();
  27.       }
  28.     else if(PIT_CNT==1)
  29.     {            
  30.       PIT_CNT=0;
  31.     }  */
  32. }

  33. void interrupt 9 TIM1(void)
  34. {  
  35.   TFLG1_C1F=1;  
  36.   i_1++;
  37.           float_change_char(temp_buf,100);
  38.           sci_transmit(temp_buf,10);
  39. }

  40. void interrupt 11 TIM3(void)
  41. {   
  42.   TFLG1_C3F=1;   
  43.   i_2++;
  44.           float_change_char(temp_buf,101);
  45.           sci_transmit(temp_buf,10);
  46. }
  47. #pragma CODE_SEG DEFUALT
复制代码

4

主题

12

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
394
威望
214
贡献
108
兑换币
124
注册时间
2013-3-17
在线时间
36 小时
毕业学校
武汉工程大学邮电与信息学院
2#
 楼主| 发表于 2013-7-1 03:59:25 | 只看该作者
自顶
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 14:52 , Processed in 0.042900 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表