time.c

来自「it is code for briging up_machtion to do」· C语言 代码 · 共 176 行

C
176
字号









#include  "port.h"
#include  "function.h"
#include  "Exvariable.h"
#include "ExHeadFileRs232.h"

//定时器用T0
//定时器1次中断时间间隔是65ms
//如果有向485口发送1帧数据,485没有响应,
//连续发三次,还是没有响应,置故障标志位

void T0InterruptServe(void) interrupt 1
	{
		SFRPAGE=TIMER01_PAGE;
		TF0=0;
		ET0=0;
		TR0 = 0; // Close Timer 1 
		CountT0--;
	  	if( CountT0==0x00)
			{
			
				AnalysisFlag=0;
				T0LookupModule();
				
			
	  		}

		else
			{
	
				SendToModuleFlag=1;
			}

	}



void T0LookupModule( void )
	{
		unsigned int i;
		CountT0=0x03;	
		SFRPAGE=CONFIG_PAGE;
		LampStateMonitor=!LampStateMonitor;		
		switch(Rs485RxBuffer[30])
			{
				case 0x01:
				case 0x02:		
				case 0x03:
				case 0x04:	
				case 0x05:
				case 0x07:
					switch(Rs485RxBuffer[31])
						{
							case 0x00:
								Rs485RxBuffer[31]=0x08;
								SendToModuleFlag=1;
								break;

							case 0x08:
								Rs485RxBuffer[30]++;
								Rs485RxBuffer[31]=0x00;
								SendToModuleFlag=1;
								break;	
							default:
								break;
						}
					break;

				case 0x0a:
					switch(Rs485RxBuffer[31])
						{
							case 0x00:
								Rs485RxBuffer[31]=0x08;
								SendToModuleFlag=1;
								break;

							case 0x08:
								SendToModuleFlag=0;
								SFRPAGE=CONFIG_PAGE;
								LampStateMonitor=0x00;
								break;	
							default:
								break;
						}
					break;

				case 0x06:
							
					switch(Rs485RxBuffer[31])
						{
							case 0x00:
								Rs485RxBuffer[30]++;
								SendToModuleFlag=1;
								break;

							default:
								break;
						}
					break;

				case 0x08:
					switch(Rs485RxBuffer[31])
						{
							case 0x00:
								Rs485RxBuffer[31]=0x01;
								SendToModuleFlag=1;
								break;

							case 0x01:
								Rs485RxBuffer[31]=0x08;
								SendToModuleFlag=1;
								break;

							case 0x08:
								Rs485RxBuffer[30]++;
								Rs485RxBuffer[31]=0x00;
								SendToModuleFlag=1;
								break;	
							default:
								break;
						}
								break;

				case 0x09:
					switch(Rs485RxBuffer[31])
						{

							case 0x00:
								Rs485RxBuffer[31]=0x08;
								SendToModuleFlag=1;
								break;

							case 0x08:
								Rs485RxBuffer[31]=0x09;
								SendToModuleFlag=1;
								break;

							case 0x09:
								Rs485RxBuffer[30]++;
								Rs485RxBuffer[31]=0x00;
								SendToModuleFlag=1;
								break;	
							default:
								break;
						}
					break;

				default:
					break;
			}
	}
















⌨️ 快捷键说明

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