⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 power.c

📁 7541数字高频头源程序
💻 C
字号:

#include "public.h"

void AccCheck(void)
{
	switch (AccState)
	{
		case ACC_OFF:
			if (Pin_ACC)
			{
				AccDelay = 100;		// 1s
				AccState = ACC_ONTEST;
			}
			break;
		
		case ACC_ONTEST:
			if (!Pin_ACC)
			{
				AccState = ACC_OFF; 
			}
			else
			{
				if (AccDelay != 0)break;
				AccState = ACC_ON;
				System.AccMode=ACCMODE_ACCONREQ;
			}
			break;
		case ACC_ON:
			if (!Pin_ACC)
			{
				AccDelay = 5;			//50ms
				AccState = ACC_OFFTEST;
			}
			break;
		
		case ACC_OFFTEST:
			if (Pin_ACC)
			{
				AccState = ACC_ON;
			}
			else
			{
				if (AccDelay != 0)break;
				AccState = ACC_OFF;
				System.AccMode=ACCMODE_ACCOFFREQ;
			}			
			break;
	}
}


void AccMain(void)
{
	
	switch(System.AccMode)
	{
		case ACCMODE_ACCON:
			
			break;
		case ACCMODE_ACCONREQ:

			System.AccMode=ACCMODE_ACCONWAIT;
			break;
			
		case ACCMODE_ACCONWAIT:

			System.AccMode=ACCMODE_ACCON;
			break;

		case ACCMODE_ACCOFF:

			break;

		case ACCMODE_ACCOFFREQ:
			
			System.AccMode=ACCMODE_ACCOFFWAIT;
			break;

		case ACCMODE_ACCOFFWAIT:
			
    			System.AccMode=ACCMODE_ACCOFF;
			break;
		
	}
	
}

void PowerMain(void)
{
	unsigned char i,j;
	unsigned char temp;
	
	switch(System.PowerMode)
	{
		case POWERMODE_POWERON:
			
			break;
		case POWERMODE_POWERONREQ:
			Pin_POWER=1;
			AudioMute(HARDOFF);
			PowerWaitTimer=5;
			System.PowerMode=POWERMODE_POWERONWAIT;
			break;
			
		case POWERMODE_POWERONWAIT:
			if(PowerWaitTimer>0)break;
			AudioSend(AUDIO_AREA_ALL);
			
			ChangeFWorkmode(System.FWorkMode.Save);
			System.PowerMode=POWERMODE_POWERON;
			Animation(ANIMATION_STOP);
			break;

		case POWERMODE_POWEROFF:
			
			break;

		case POWERMODE_POWEROFFREQ:
			ChangeFWorkmode(WORKMODE_STANDBY);
			System.PowerMode=POWERMODE_POWEROFFWAIT;
			PowerWaitTimer=5;
			break;

		case POWERMODE_POWEROFFWAIT:
			if(PowerWaitTimer>0)break;
			AudioMute(HARDON);
    			System.PowerMode=POWERMODE_POWEROFF;
			#if TDA7540Tuner
			Animation(ANIMATION_START,"ST FST JIG BOARD (TDA7540+TDA7419+TDA7479+TDA7384A+ST72321) -- Press 'Power' key to power on/off, press 'Mode' key to change modes between normal tuner mode and align mode. Red keys only for align mode, black keys only for normal tuner mode and blue keys for both. -- ST Shenzhen CRM",30);
			#endif
			#if TDA7541Tuner
			Animation(ANIMATION_START,"ST FST08 JIG BOARD (TDA7541+TDA7419+TDA7479+TDA7384A+ST72321) -- Press 'Power' key to power on/off, press 'Mode' key to change modes between normal tuner mode and align mode. Red keys only for align mode, black keys only for normal tuner mode and blue keys for both. -- ST Shenzhen CRM",30);
			#endif
			break;
		
	}
	
}

void PowerOff (void)
{
	System.PowerMode=POWERMODE_POWEROFFREQ;

}

void PowerOn (void)
{
	System.PowerMode=POWERMODE_POWERONREQ;
}

void PowerInit(void)
{
	Pin_ACC=0;//yete ask: It's input, why need to clear 0
	PD_ACC=0;  
	PO_ACC=1;

	Pin_POWER=0;
	PD_POWER=1;
	PO_POWER=1;

	MCCSR = 0x0E; //Timer B Input Capture 1 High Register
	
	AccState = ACC_OFF;


	System.PowerMode=POWERMODE_POWEROFF;
	System.AccMode=ACCMODE_ACCOFF;
	#if TDA7540Tuner
	Animation(ANIMATION_START,"ST FST JIG BOARD (TDA7540+TDA7419+TDA7479+TDA7384A+ST72321) -- Press 'Power' key to power on/off, press 'Mode' key to change modes between normal tuner mode and align mode. Red keys only for align mode, black keys only for normal tuner mode and blue keys for both. -- ST Shenzhen CRM",30);
	#endif
	#if TDA7541Tuner
	Animation(ANIMATION_START,"ST FST08 JIG BOARD (TDA7541+TDA7419+TDA7479+TDA7384A+ST72321) -- Press 'Power' key to power on/off, press 'Mode' key to change modes between normal tuner mode and align mode. Red keys only for align mode, black keys only for normal tuner mode and blue keys for both. -- ST Shenzhen CRM",30);
	#endif
}

void PowerTimer10ms(void)
{
	if(AccDelay>0)AccDelay--;
	if(PowerWaitTimer>0)PowerWaitTimer--;
}

void PowerTimer1s(void)
{
	
	
}


⌨️ 快捷键说明

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