lpc2131调试的问题求救!

[复制链接]
 楼主| ttttlj 发表于 2007-7-21 13:37 | 显示全部楼层 |阅读模式
开发环境:ads1.2+H-JTAG+H-FLASHER<br />&nbsp;&nbsp;&nbsp;&nbsp;程序有下面的结构:<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;flag=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;//开启一个定时器和中断;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(flag!=1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;代码<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;//定时器中断服务程序<br />&nbsp;&nbsp;&nbsp;&nbsp;flag=1;<br />现在遇到的问题是:<br />&nbsp;&nbsp;&nbsp;&nbsp;刚开始的时候,程序能停在While处等中断,然后中断产生了,flag=1了,但是while循环始终不退出,这个是什么问题?是我调试的配置还是编译器?请大家一定要帮我啊.谢谢了!
hqgboy 发表于 2007-7-21 16:09 | 显示全部楼层

全部贴出来看看...

  
 楼主| ttttlj 发表于 2007-7-21 16:23 | 显示全部楼层

全贴很多阿,部分的如下

extern&nbsp;uint8&nbsp;g125mstimer;<br /><br />void&nbsp;__irq&nbsp;IRQ_Timer0(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;tempLength;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;u32Bak;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;u8TempT0IR;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;//停止定时器<br />&nbsp;&nbsp;&nbsp;&nbsp;u32Bak&nbsp;=&nbsp;VICIntEnable;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnClr&nbsp;=&nbsp;(1&lt&lt4)|(1&lt&lt5)|(1&lt&lt6)|(1&lt&lt7);&nbsp;&nbsp;&nbsp;&nbsp;//禁止其他中断<br />&nbsp;&nbsp;&nbsp;&nbsp;u8TempT0IR&nbsp;=&nbsp;T0IR;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;FeedDog();<br />&nbsp;&nbsp;&nbsp;&nbsp;if((u8TempT0IR&nbsp;&&nbsp;0X01)&nbsp;==&nbsp;0X01)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if((u8TempT0IR&nbsp;&&nbsp;0X02)&nbsp;==&nbsp;0X02)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if((u8TempT0IR&nbsp;&&nbsp;0X04)&nbsp;==&nbsp;0X04)<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;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FeedDog();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer125msDisable();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g125mstimer=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if((u8TempT0IR&nbsp;&&nbsp;0X08)&nbsp;==&nbsp;0X08)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;VICIntEnable&nbsp;=&nbsp;u32Bak;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使能其他中断<br />&nbsp;&nbsp;&nbsp;&nbsp;VICVectAddr&nbsp;=&nbsp;0X00;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0TCR&nbsp;=&nbsp;0X01;<br />}<br /><br />void&nbsp;Timer125msEnable(void)&nbsp;&nbsp;&nbsp;&nbsp;<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IR&nbsp;=&nbsp;0X04;&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;T0MR2&nbsp;=&nbsp;T0TC&nbsp;+&nbsp;Fpclk/8;<br />&nbsp;&nbsp;&nbsp;&nbsp;T0MCR&nbsp;|=&nbsp;(1&lt&lt6);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FeedDog();<br />}<br />void&nbsp;Timer125msDisable(void)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IR&nbsp;=&nbsp;0X04;&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;T0MCR&nbsp;&=&nbsp;~(0X07&lt&lt6);<br />&nbsp;&nbsp;&nbsp;&nbsp;FeedDog();<br />}<br /><br /><br />void&nbsp;find_sever()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i,j;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;ccode[7]={0x00,0x03,0x1E,0xC2,0x00,0x09,0x14};<br />&nbsp;&nbsp;&nbsp;&nbsp;uint16&nbsp;ReceiveFrameLength&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;uint8*&nbsp;ReceiveFrame;&nbsp;&nbsp;&nbsp;&nbsp;//收到帧的存储区<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt32;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gRunPara.ucMeters=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;while(ccode[0]!=i)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FeedDog();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ModBus_conv(ccode,7);&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;&nbsp;&nbsp;&nbsp;&nbsp;UART0_SendFrame(&InBuffer[32],17);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g125mstimer=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Timer125msEnable();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(!g125mstimer)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;//处理的代码&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//end&nbsp;while<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(g125mstimer==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ccode[0]++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ccode[6]--;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}//end&nbsp;while&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;;<br />}
hqgboy 发表于 2007-7-23 08:50 | 显示全部楼层

while(ccode[0]!=i)//啥意思???

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

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