rxc.c

来自「红外信号测试软件」· C语言 代码 · 共 80 行

C
80
字号
#include "..\gloableh.h"
#include "rxh.h"
RXSTRUCT Rx;
void RfRx(void)
{
	Rx.State=0;
	Rx.Timer=0;
	while(1){
		if(Rx.State>3) break;
		switch(Rx.State){
			case 0:
				if(RxBit){
					Rx.Timer +=GetTimer();
					if(Rx.Timer>5000) Rx.State=5;
					 break;
				}
				Rx.State++;
				Rx.Timer=0;
				Rx.un.ul0=0;
				GetTimer();
				break;
			case 1:
				Rx.Timer +=GetTimer();
				if(RxBit){
					if(Rx.Timer>MINLOWTIME){
						Rx.State=2;
						Rx.Count=24;
						Rx.Timer=0;
						GetTimer();
						break;
					}
					Rx.State=0;
					break;
				}
				if(Rx.Timer>MAXLOWTIME) Rx.State=5;
				break;
			case 2:
				Rx.Timer+=GetTimer();
				if(RxBit) break;
#if 0				
				if(Rx.Timer<MINPULSELOWTIME){
					Rx.State=5;
					break;
				}
#endif				
				if(Rx.Timer>MAXPULSEHIGHTIME){
					Rx.State=5;
					break;
				}
				if(Rx.Timer>MINPULSEHIGHTIME){
					Rx.un.ul0 |=1;
				}
				
				Rx.Timer=0;
				Rx.State=3;
				Rx.Count--;
				if(Rx.Count){
					Rx.un.ul0<<=1;
					break;
				}
				Rx.State=4;
				break;
			case 3:
				if(RxBit){
					Rx.State=2;
					Rx.Timer=0;
					GetTimer();
					break;
				}
				Rx.Timer +=GetTimer();
				if(Rx.Timer>MAXPULSEHIGHTIME) Rx.State=5;
				break;
			case 4:
				break;
			case 5:
				break;
		}
	}
}

⌨️ 快捷键说明

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