TI中文支持网
TI专业的中文技术问题搜集分享网站

请问,我149的程序能这么写吗?求大神帮助

我的意图是用usart0接收命令数据,然后判断各个命令字节,然后再用usart0发送出数据。能将以下switch语句加到usart0接收中断里么?如不然该怎么判定命令数据来了,能及时处理这个命令?求大神指导

#pragma vector=UART0RX_VECTOR__interrupt void UART0_RX(void)

{                for(temp=0;temp<8;temp++)

        {  

             str[temp]=U0RXBUF;                                //USART_Transmit(RecBuffer[RecPoint][temp8+4]);

         }                    

         while(rfovertime)            

       {                      

         NORWDI;            

 if(str[0]==DeviceID)            

 {                            

               LED1ON;                    //Delay(1)                    //Delay(1);            switch(str[1])            

    {                  //case 0:break;                  //case 1:break;                

case 1: rfovertime=MaxWaitTime;                         Delay(1);             str[0]=DeviceID;              

str[1]=0x01;                        

str[2]=ReadPCF8563(0xa2,0x02);  //秒                         str[3]=ReadPCF8563(0xa2,0x03);  //分             str[4]=ReadPCF8563(0xa2,0x04);  //时                         str[5]=ReadPCF8563(0xa2,0x05);  //日                         str[6]=ReadPCF8563(0xa2,0x07);  //月                         str[7]=ReadPCF8563(0xa2,0x08);  //年                         Delay(1);                         NORWDI;                          RFFIFOSendData(8,&str[0]);                          //while(!(IFG1 & UTXIFG0));//缓存空闲                                                                            NORWDI;                          Delay(1);                         break;

下面一堆case,拜谢了

灰小子:

这样也可以。但一般情况,都是把能放在中断服务程序外的都放在外面。

当然,也要看你你说的“及时”是多长的延时。

wei shi4:

回复 灰小子:

请问大神,如果我接收数据的判别SWITCH放在中断外面,那我收到数据的时候,设中断标志位?还是等主程序循环到?

灰小子:

回复 wei shi4:

如果能接受这种延时,就放主程序循环里

wei shi4:

回复 灰小子:

if(IFG1 & URXIFG0) { for(temp=0;temp<8;temp++) { str[temp]=U0RXBUF; }

大神,我能这么写么?如果RXBUF不为空,然后存给st【】,存完后,RXBUF里还有数据吗?也就是说,下次调用数据的时候直接用st【】,还是能继续用RXBUF?

灰小子:

回复 wei shi4:

RXBUF随时会被新的数据覆盖掉的,所以一般放在中断里及时读出

赞(0)
未经允许不得转载:TI中文支持网 » 请问,我149的程序能这么写吗?求大神帮助
分享到: 更多 (0)