打印
[ZLG-ARM]

定时器中断无法退出

[复制链接]
1292|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
手写识别|  楼主 | 2010-8-17 22:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化程序:
void  Timer1Init(void)
{  
  T0TCR = 0x02;         /* 定时器0复位   */
  T0PR  = 0;         /* 不设时钟分频   */
  T0MCR = 0x03;         /* 匹配后复位TC,并产生中断 */
  T0MR0 = Fpclk*5 ;         /* 设置5秒匹配值   */
  T0IR  = 0x01;         /* 清除中断标志   */
  T0TCR = 0x01;         /* 启动定时器0   */

}
中断程序:
void IRQ_Timer0 (void)
{                 
   uint8 STRING[3]={0x31,0x32,0x33};

   T0IR = 0x01;             // 清除中断标志
   if(i==0)
   {
      UART1_SendStr(STRING);
   }
   else i=0;

   VICVectAddr = 0x00;        // 中断向量结束
}


运行之后,执行完一次中断后又进入中断,连续向串口发送数据,不重新计时...
请大侠帮看一看

相关帖子

沙发
无语凝咽| | 2010-8-21 23:10 | 只看该作者
对于你帖出的代码,有几个问题没弄清楚。

  1、定义的i变量用途是什么?为什么要在i=0时,将中断向量结束?

  2、Uart1_SendStr()发送STRING[3],这个方法是错误的。STRING[3]不是一个字符串,而是一个字符数组。

  3、对于连续进入中断问题,请确认以下两点:1)、清除了中断标志;2)、定时器定时时间不能太短。

使用特权

评论回复
板凳
3B1105| | 2010-8-21 23:36 | 只看该作者
我也不搞不明白你这i干什么的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

361

帖子

1

粉丝