[ZLG-ARM] 我用ZLG的2100工程模板,外部中断怎么老进不去啊

[复制链接]
1888|0
 楼主| wlrt 发表于 2007-10-20 11:54 | 显示全部楼层 |阅读模式
我用的是周立功LPC2100模板&nbsp;外部中断怎么老进不去啊&nbsp;请大家帮忙看看阿&nbsp;先谢谢了<br />&nbsp;<br />#include&nbsp;&quot;config.h&quot;<br /><br />uint16&nbsp;Fdiv;<br />uint8&nbsp;p;<br />uint8&nbsp;flag_ri;<br />uint32&nbsp;T1temp0,T1temp1,T1diff;<br />uint32&nbsp;T2temp0,T2temp1,T2diff;<br />uint8&nbsp;flag_t1,flag_t2;<br />float&nbsp;freqnd1,freqnd2;<br />uint8&nbsp;end1,end2;<br /><br />void&nbsp;init_ic(void)<br /><br />{<br />//================================IO初始化<br />&nbsp;&nbsp;PINSEL0=0x800000c5;<br />&nbsp;&nbsp;PINSEL1=0x15454000;<br />&nbsp;&nbsp;PINSEL2=0x00000000;<br />&nbsp;&nbsp;<br />//=======================设置T1用于做时间轴&nbsp;&nbsp;<br />&nbsp;&nbsp;T1TC=0;<br />&nbsp;&nbsp;T1PR=0;<br />&nbsp;&nbsp;T1MR1=0Xffffffff;<br />&nbsp;&nbsp;T1MCR=0X00;<br />&nbsp;&nbsp;T1TCR=0X01;<br />&nbsp;&nbsp;<br />//=========================串口设置&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;U0LCR=0X83;<br />&nbsp;//U0DLL=0X12;<br />//&nbsp;U0DLM=0X00;<br />&nbsp;&nbsp;&nbsp;Fdiv&nbsp;=&nbsp;(Fpclk&nbsp;/&nbsp;16)&nbsp;/&nbsp;9600;&nbsp;&nbsp;//&nbsp;设置波特率<br />&nbsp;&nbsp;&nbsp;U0DLM&nbsp;=&nbsp;Fdiv&gt&gt8;&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;U0DLL&nbsp;=&nbsp;Fdiv&0xff;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;U0LCR=0X03;<br />&nbsp;&nbsp;//&nbsp;U0FCR=0X07;<br />&nbsp;&nbsp;//&nbsp;U0IER=0x01;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />//======================设置中断向量&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;VICIntSelect=0x00000000;<br />&nbsp;<br />&nbsp;&nbsp;VICVectCntl1&nbsp;=&nbsp;0x2F;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EINT1通道分配到IRQ&nbsp;slot&nbsp;1,即优先级1<br />&nbsp;&nbsp;VICVectAddr1&nbsp;=&nbsp;(uint32)IRQ_Eint1;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;设置EINT1向量地址<br />&nbsp;&nbsp;VICVectCntl2&nbsp;=&nbsp;0x30;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;EINT2通道分配到IRQ&nbsp;slot&nbsp;2,即优先级2<br />&nbsp;&nbsp;VICVectAddr2&nbsp;=&nbsp;(uint32)IRQ_Eint2;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;<br /><br />&nbsp;<br />//====================外部中断设置&nbsp;&nbsp;<br />&nbsp;EXTMODE&nbsp;=&nbsp;0x0f;&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;EXTPOLAR&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;&nbsp;<br />&nbsp;EXTINT=0x07;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//clear&nbsp;INT0,&nbsp;INT1&nbsp;and&nbsp;INT2&nbsp;interrupt&nbsp;flag&nbsp;清外部中断标志&nbsp;&nbsp;外部中断低电平有效,对其写1是复位<br />&nbsp;VICIntEnable=0x00018000;//enable&nbsp;INT1&nbsp;and&nbsp;INT2&nbsp;interrupt<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;<br />}<br /><br />void&nbsp;DelayNS(uint32&nbsp;dly)<br />{<br />&nbsp;uint32&nbsp;i;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;for&nbsp;(;dly&gt0;dly--)<br />&nbsp;for&nbsp;(i=0;i&lt50000;i++);<br />}<br /><br /><br />int&nbsp;main&nbsp;(void)<br />{&nbsp;<br />&nbsp;&nbsp;end1=0x31;<br />&nbsp;&nbsp;end2=0x32;<br />&nbsp;&nbsp;IO1DIR=0x00030000;<br />&nbsp;&nbsp;IO1SET=0x00030000;<br />&nbsp;&nbsp;init_ic();<br /><br />&nbsp;&nbsp;for(;;)<br />&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;if(flag_t1)<br />&nbsp;<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;freqnd1=12000000.0/T1diff;<br />&nbsp;&nbsp;if(freqnd1&gt45&nbsp;&&&nbsp;freqnd1&lt60)<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;end1=50;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;end1=100;<br />&nbsp;&nbsp;}&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;if(flag_t2)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;IO1SET=0x00020000;<br />&nbsp;&nbsp;&nbsp;&nbsp;freqnd2=12000000.0/T2diff;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(freqnd2&gt45&nbsp;&&&nbsp;freqnd2&lt60)<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;end2=50;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;end2=100;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;p=end1;<br />//&nbsp;p=0x31;<br />&nbsp;U0THR=p;<br />&nbsp;while(&nbsp;(U0LSR&0x20)==0&nbsp;);<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;DelayNS(50);<br />&nbsp;&nbsp;<br />&nbsp;p=end2;<br />&nbsp;//p=0x32;<br />&nbsp;U0THR=p;<br />&nbsp;while(&nbsp;(U0LSR&0x20)==0&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;//&nbsp;return&nbsp;0;<br />}<br />}<br /><br /><br />void&nbsp;__irq&nbsp;IRQ_UART0(void)<br />{<br /><br />&nbsp;VICVectAddr=0x00;<br />}<br /><br />void&nbsp;__irq&nbsp;IRQ_Eint1(void)<br />{&nbsp;<br />&nbsp;&nbsp;T1temp0=T1temp1;<br />&nbsp;&nbsp;T1temp1=T1TC;<br />&nbsp;&nbsp;T1diff=T1temp1-T1temp0;<br />&nbsp;&nbsp;&nbsp;flag_t1=1;<br />&nbsp;<br />&nbsp;/*&nbsp;EXTINT=0x02;<br />&nbsp;&nbsp;end1=0x33;*/<br />&nbsp;VICVectAddr=0x00;<br />}<br />void&nbsp;__irq&nbsp;IRQ_Eint2(void)<br />{<br />&nbsp;<br />/*&nbsp;EXTINT&nbsp;=&nbsp;0x04;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除中断标志&nbsp;外部中断2&nbsp;&nbsp;IRQ中断<br />&nbsp;IO1CLR=&nbsp;0x00020000;<br />&nbsp;T2temp0=T2temp1;<br />&nbsp;&nbsp;T2temp1=T1TC;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;if(T2temp1&gtT2temp0)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;flag_t2=1;<br />&nbsp;&nbsp;&nbsp;T2diff=T2temp1-T2temp0;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;}*/<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;EXTINT&nbsp;=&nbsp;0x04;<br />&nbsp;&nbsp;end2=0x35;<br />&nbsp;&nbsp;VICVectAddr=0x00;&nbsp;<br />}<br /><br />可是2100模板还要配置呢?在那里配置?如何配置呢?期待大家的回复阿。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

20

帖子

1

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