智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1521|回复: 2
打印 上一主题 下一主题

[编程类] XS128单片机中断没有进去,是什么原因呢?求大大神

[复制链接]

4

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
391
威望
200
贡献
113
兑换币
125
注册时间
2013-7-27
在线时间
39 小时
毕业学校
中南民族大学
跳转到指定楼层
1#
发表于 2013-11-17 22:21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献


  1. /*==============================================================================
  2.                                   TIM定时器设置了捕捉中断
  3. ==============================================================================*/
  4. void TIMER23_IC_Init(void)  //输入捕捉OC23初始化
  5. {
  6.   TIOS_IOS2=0;   // 设置PT2为输入捕捉
  7.   TIOS_IOS3 = 0; // 设置PT3为输入捕捉
  8.    
  9.   TSCR1_TFFCA=0; // FAST FLAG CLEAR  读取即清零
  10.   
  11.   TCTL4_EDG2A=1;
  12.   TCTL4_EDG2B=0; // 脉冲计数 (PT2) 上升沿捕捉
  13.   TCTL4_EDG3A=1;
  14.   TCTL4_EDG3B=0; // 脉冲计数 (PT3) 上升沿捕捉
  15.   
  16.   TIE_C2I = 1;   //中断请求允许
  17.   TIE_C3I = 1;   //中断请求允许


  18.   TSCR2_PR2=1;   // 计时器预分频 ,  从总线bus   128分频
  19.   TSCR2_PR1=1;
  20.   TSCR2_PR0=1;
  21.   
  22.   TSCR1_TEN=1;    // timer enable  

  23. }
复制代码

  1. //中断函数
  2. #pragma CODE_SEG __NEAR_SEG NON_BANKED
  3. #pragma TRAP_PROC
  4. void interrupt 11 Int_ico3(void)      //ico3 输入捕捉中断按键
  5. //void interrupt 11 TIMER23_IC_Init(void)
  6. {
  7.   TFLG1_C3F = 1; //中断的标志位清零  
  8.   // PITCFLMT ^=(1 << 7);//定时器使能位取反

  9.    TimeSec = Time_cnt;
  10.    TimeUs = _10Ms_Num;
  11.   // PITCFLMT=0X00;
  12.   // LCD_Write_Num(70,4,Time_cnt,2);
  13. }   
复制代码


  1. //主函数
复制代码


一般就是这些代码了,不知道为什么中断没有进行,TimeSec,TimeUs,就没能捕捉到,按键按下数值会停。


我把中断函数注释掉了,按键还是会停,说明中断函数并没有运行,这是为什么呢?


求大大神指教~,

4

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
391
威望
200
贡献
113
兑换币
125
注册时间
2013-7-27
在线时间
39 小时
毕业学校
中南民族大学
2#
 楼主| 发表于 2013-11-17 22:23:26 | 只看该作者
  1. void main(void)
  2. {
  3.   /* put your own code here */
  4.   
  5.   SetBusCLK_64M();                        //主频64M
  6.   TIMER23_IC_Init();    //输入捕捉按键
  7.   PIT_Init();           //定时器
  8.   DDRT = 0xff;                            //PORTT方向寄存器 输出
  9.   LCD_Init();                             //LCD初始化
  10.   LCD_clear();                            //LCD清屏                             

  11.         EnableInterrupts;                       //中断允许
  12.        
  13.   for(;;)
  14.   {
  15.     _FEED_COP(); /* feeds the dog */
  16.     if(Time_cnt == 60) Time_cnt = 0;
  17.     LCD_Write_Num(53,0,Time_cnt,2);
  18.     LCD_Write_String(65,0,".");
  19.     LCD_Write_Num(70,0,_10Ms_Num,2);//显示变量      
  20.     LCD_Write_Num(53,1,TimeSec,2);   //没有显示出来
  21.     LCD_Write_Num(70,1,TimeUs,2);      //同上~
  22.   } /* loop forever */
  23.   
  24.   /* please make sure that you never leave main */
  25. }
复制代码
主函数怎么没有。。呈上了
回复

使用道具 举报

25

主题

1217

帖子

0

精华

知名人物

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
27554

论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章资源大师奖章

QQ
威望
18751
贡献
5861
兑换币
3255
注册时间
2012-6-6
在线时间
1471 小时
3#
发表于 2013-11-18 08:54:23 | 只看该作者
配置有问题把
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-30 01:14 , Processed in 0.089384 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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