junger.c

来自「msp430和nrf905的例子,联系qqliuyong007@163.com」· C语言 代码 · 共 91 行

C
91
字号
 void junger(void)
 {
              if((t>=time_ok)&&(rxbuf[0]==ADDRESS))  // ADDRESS为该从机的地址
			{
		         flag.receive_ok=TRUE;
		         flag.timecount_ok=FAULT;
		         t=0;
		         flag.ds=0;
                         URCTL1 |= URXWIE; //到达末尾,改变接收为地址方式
			}
			else
			{
			flag.receive_ok=FAULT;
			t=0;
			}
  
		if(flag.receive_ok==TRUE)
		{
		       _NOP();
		       flag.receive_ok=FAULT;
		       if(rxbuf[1]==download_parameter)
			{
			T16=crc16(rxbuf,rxbuf[5]*2+6);//计算CRC值
                        high8=T16 >> 8;
	                low8=T16 & 0xff;
	                }
	                else
	                {
	                T16=crc16(rxbuf,6);//计算CRC值
                        high8=T16 >> 8;
	                low8=T16 & 0xff;
	                } 
	                
	                if((rxbuf[1]==download_parameter) && (rxbuf[6+rxbuf[5]*2]==high8) && (rxbuf[7+rxbuf[5]*2]==low8))
	                {
	                 downloadparameter() ;
	                 }
	           
	                if((rxbuf[1]!=download_parameter )&& (rxbuf[6]==high8) && (rxbuf[7]==low8 ))
			{ 
			       //unsigned short b=rxbuf[5];
			       //unsigned short c=rxbuf[3];
			       //unsigned long  a =b*2;
				switch(rxbuf[1])
			   {   
				case read_relay:     //读继电器状态
				    readrelay() ;
					break;
				case read_switch:    //读输入开关量状态
				    readswitch() ;
				     break;
				case read_register: //读取保持寄存器
				    readregister() ;
				     break;
				case release_replase://继电器释放或电能表复位
				    readreplase() ;
				     break;
				case download_parameter://参数下载
				    downloadparameter() ;
				     break;
				case read_dztd://读取定值通道状态
				readrelay() ;
				break;
				//case read_thing://读取事件记录
				//readrelay() ;
				//break;
			    default:
			    answernum=0x01;
			    exceptionalanswer();
			    answernum=0x00;
			    break;
			   }
					 
				
			}

		}
		         i=0;
     for(i=0;i<140;i++)
     {
     rxbuf[i]=0;
     txbuf[i]=0;
     }
     		         i=0;
     for(i=0;i<140;i++)
     {
     rxbuf[i]=0;
     txbuf[i]=0;
     }
		}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?