[ZLG-ARM] 2366外部中断计数问题

[复制链接]
2491|4
 楼主| xcxxyc 发表于 2007-12-4 21:05 | 显示全部楼层 |阅读模式
程序:<br />void&nbsp;Time1_Init(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;PINSEL3&nbsp;=&nbsp;(PINSEL3&nbsp;&&nbsp;0xffffff3f)|(0x3&nbsp;&lt&lt&nbsp;6);&nbsp;&nbsp;//PIN19&nbsp;做&nbsp;CAP1.1<br />&nbsp;&nbsp;&nbsp;&nbsp;T1CTCR&nbsp;=&nbsp;(0x01&nbsp;&lt&lt&nbsp;0)&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;2);&nbsp;//&nbsp;外部上升沿计数模式,选脉冲输入口CAP1.1<br />&nbsp;&nbsp;&nbsp;&nbsp;T1MR1&nbsp;=&nbsp;11;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;系统要求的计数个数,如果TC&nbsp;=&nbsp;MR1,产生一个中断,并且清零TC或停止计数<br />&nbsp;&nbsp;&nbsp;&nbsp;T1MCR&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;3)&nbsp;|&nbsp;(1&nbsp;&lt&lt&nbsp;4);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;计数到产生中断,并复位TC。<br />&nbsp;&nbsp;&nbsp;//&nbsp;T1CCR&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;3);<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr5&nbsp;=&nbsp;(uint32)Tine1_IRQ;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;(1&nbsp;&lt&lt&nbsp;5);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;注意,这里可先设置,因为计数没有启动&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1TC&nbsp;&nbsp;&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;计数器设置为0&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1IR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断位<br />}<br />void&nbsp;__irq&nbsp;Time1_IRQ(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;T1IR&nbsp;=&nbsp;0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T1TCR&nbsp;&nbsp;=&nbsp;0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;关闭计数器<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;&nbsp;&nbsp;//&nbsp;中断处理结束<br />}<br />怎么一运行就不停的中断中断??我的外部脉冲是每隔1s产生11个中断,问题是我还没有给脉冲,就中断个不歇气,好烦躁啊!!
 楼主| xcxxyc 发表于 2007-12-4 21:09 | 显示全部楼层

有几个错误

每隔1s产生是11个脉冲。<br />在主程序里开启IRQ和定时器计数
lyl831015 发表于 2007-12-5 08:39 | 显示全部楼层

中断标志清除错了

中断标志清除错了<br />中服中清除的是CAP1.0的中断标志,而你使用的是CAP1.1通道。<br />另外中断的设置不规范:<br />23还需要设置中断优先级寄存器。
 楼主| xcxxyc 发表于 2007-12-5 09:06 | 显示全部楼层

谢谢lyl831015!!

  
lyl831015 发表于 2007-12-5 18:53 | 显示全部楼层

哈哈

不用客气,我也是一菜鸟,大家互相帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

105

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部