打印
[ZLG-ARM]

2366外部中断计数问题

[复制链接]
1803|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xcxxyc|  楼主 | 2007-12-4 21:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序:
void Time1_Init(void)
{
    PINSEL3 = (PINSEL3 & 0xffffff3f)|(0x3 << 6);  //PIN19 做 CAP1.1
    T1CTCR = (0x01 << 0) | (0x01 << 2); // 外部上升沿计数模式,选脉冲输入口CAP1.1
    T1MR1 = 11;                         // 系统要求的计数个数,如果TC = MR1,产生一个中断,并且清零TC或停止计数
    T1MCR = (1 << 3) | (1 << 4);        // 计数到产生中断,并复位TC。
   // T1CCR = (1 << 3);
    VICVectAddr5 = (uint32)Tine1_IRQ;    // 设置中断服务程序地址                    
    VICIntEnable = (1 << 5);            // 注意,这里可先设置,因为计数没有启动    
    T1TC   = 0;                // 计数器设置为0 
    T1IR = 0x01;                        // 清除中断位
}
void __irq Time1_IRQ(void)
{
    T1IR = 0x01;           // 清除中断标志    
    T1TCR  = 0x00;       // 关闭计数器
    VICVectAddr = 0x00;  // 中断处理结束
}
怎么一运行就不停的中断中断??我的外部脉冲是每隔1s产生11个中断,问题是我还没有给脉冲,就中断个不歇气,好烦躁啊!!

相关帖子

沙发
xcxxyc|  楼主 | 2007-12-4 21:09 | 只看该作者

有几个错误

每隔1s产生是11个脉冲。
在主程序里开启IRQ和定时器计数

使用特权

评论回复
板凳
lyl831015| | 2007-12-5 08:39 | 只看该作者

中断标志清除错了

中断标志清除错了
中服中清除的是CAP1.0的中断标志,而你使用的是CAP1.1通道。
另外中断的设置不规范:
23还需要设置中断优先级寄存器。

使用特权

评论回复
地板
xcxxyc|  楼主 | 2007-12-5 09:06 | 只看该作者

谢谢lyl831015!!

使用特权

评论回复
5
lyl831015| | 2007-12-5 18:53 | 只看该作者

哈哈

不用客气,我也是一菜鸟,大家互相帮助。

使用特权

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

本版积分规则

27

主题

105

帖子

0

粉丝