[ZLG-ARM] 请问版主:定时捕获为什么不能中断?

[复制链接]
 楼主| gg_5188 发表于 2007-4-9 10:19 | 显示全部楼层 |阅读模式
void&nbsp;__irq&nbsp;&nbsp;IRQ_Time0(void)<br />{&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;Out_Counter&nbsp;=&nbsp;1;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;T0IR&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志<br />&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0x00;&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;&nbsp;&nbsp;//&nbsp;通知VIC中断处理结束<br />&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x03;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;启动并复位T0TC<br />&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;&nbsp;<br />}<br />void&nbsp;&nbsp;Time0Init(void)<br />{&nbsp;&nbsp;&nbsp;/*&nbsp;Fcclk&nbsp;=&nbsp;Fosc*4&nbsp;=&nbsp;11.0592MHz*4&nbsp;=&nbsp;44.2368MHz<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fpclk&nbsp;=&nbsp;Fcclk/4&nbsp;=&nbsp;44.2368MHz/4&nbsp;=&nbsp;11.0592MHz<br />&nbsp;&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PINSEL0&nbsp;|=&nbsp;0x20;&nbsp;&nbsp;&nbsp;//p0.2<br />&nbsp;&nbsp;&nbsp;&nbsp;T0PR&nbsp;=&nbsp;0;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置定时器0分频为100分频,得110592Hz<br />&nbsp;&nbsp;&nbsp;&nbsp;T0CCR&nbsp;=&nbsp;0x20;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TC&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;设置定时器0中断IRQ&nbsp;*/<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntSelect&nbsp;=&nbsp;0x00;&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;所有中断通道设置为IRQ中断<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectCntl0&nbsp;=&nbsp;0x24;&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;定时器0中断通道分配最高优先级(向量控制器0)<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr0&nbsp;=&nbsp;(uint32)IRQ_Time0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置中断服务程序地址向量&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;0x00000010;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;使能定时器0中断<br />}
ntman1985 发表于 2007-4-9 14:54 | 显示全部楼层

你把现象说得明白点啊。。。比如该有变化的变量没变化?

  
 楼主| gg_5188 发表于 2007-4-9 16:28 | 显示全部楼层

Sorry

是我没有把问题说清楚!<br />我的目的是用CAP0.0来测外部输入信号频率,采用的是下降沿捕获。<br />现在的现象是:P0.2虽然产生了下降沿,但定时器却未产生中断,请赐教!
zlgARM 发表于 2007-4-9 22:20 | 显示全部楼层

gg_5188

打开了IRQ中断没有?
 楼主| gg_5188 发表于 2007-4-10 13:36 | 显示全部楼层

多谢各位!

问题找到了,是我的输入信号电平不够低,没有触发中断。<br />发现了一个现象不知是否正确:同样是低电平触发(或下降沿触发),能够引起外部中断的电平未必能够触发定时捕获。
zlgARM 发表于 2007-4-10 18:55 | 显示全部楼层

gg_5188

&nbsp;&nbsp;&nbsp;&nbsp;您可以做一个严谨的测试来确定问题。<br />&nbsp;&nbsp;&nbsp;&nbsp;但是,如果是合乎要求的低电平,绝对是两者都能触发的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

33

帖子

0

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