extern uint8 g125mstimer;<br /><br />void __irq IRQ_Timer0(void)<br />{<br /> uint16 i;<br /> uint16 tempLength;<br /> uint32 u32Bak;<br /> uint8 u8TempT0IR;<br /> T0TCR = 0; //停止定时器<br /> u32Bak = VICIntEnable;<br /> VICIntEnClr = (1<<4)|(1<<5)|(1<<6)|(1<<7); //禁止其他中断<br /> u8TempT0IR = T0IR;<br /><br /> FeedDog();<br /> if((u8TempT0IR & 0X01) == 0X01)<br /> { <br /><br /> }<br /> if((u8TempT0IR & 0X02) == 0X02) <br /> {<br /> }<br /> if((u8TempT0IR & 0X04) == 0X04)<br /> { <br /> FeedDog();<br /> Timer125msDisable();<br /> g125mstimer=1; <br /> }<br /> if((u8TempT0IR & 0X08) == 0X08) <br /> { <br /> }<br /> VICIntEnable = u32Bak; //使能其他中断<br /> VICVectAddr = 0X00; <br /> T0TCR = 0X01;<br />}<br /><br />void Timer125msEnable(void) <br />{ <br /> T0IR = 0X04; <br /> T0MR2 = T0TC + Fpclk/8;<br /> T0MCR |= (1<<6); FeedDog();<br />}<br />void Timer125msDisable(void) <br />{<br /> T0IR = 0X04; <br /> T0MCR &= ~(0X07<<6);<br /> FeedDog();<br />}<br /><br /><br />void find_sever()<br />{<br /> uint8 i,j;<br /> uint8 ccode[7]={0x00,0x03,0x1E,0xC2,0x00,0x09,0x14};<br /> uint16 ReceiveFrameLength = 0;<br /> uint8* ReceiveFrame; //收到帧的存储区<br /> for(i=0;i<32;i++)<br /> {<br /> gRunPara.ucMeters=0;<br /> }<br /> while(ccode[0]!=i)<br /> {<br /> FeedDog();<br /> i=0; <br /> ModBus_conv(ccode,7); <br /> UART0_SendFrame(&InBuffer[32],17);<br /> g125mstimer=0;<br /> Timer125msEnable();<br /> while(!g125mstimer)<br /> {<br /> ;//处理的代码 <br /> }//end while<br /> if(g125mstimer==1)<br /> {<br /> ccode[0]++;<br /> ccode[6]--;<br /> }<br /> }//end while <br /> return ;<br />}
|