Exemple #1
0
/*-----------------------------------------------------------------------------
名称:	BIGLED_Run
功能:	大LED运行时的切换
输入: u16 time 切换周期
输出: void
-----------------------------------------------------------------------------*/
void BIGLED_Run()
{
	switch(Operation_Type)					
	{
		case 1:																													//东西向绿灯与南北向红灯亮
		{
			LED_R1 = 0;	LED_Y1 = 0;	LED_G1 = 1;
			LED_R2 = 1;	LED_Y2 = 0;	LED_G2 = 0;
			Change_Flag = 0;
			while(!Change_Flag);																					//延时
			Change_Flag = 0;
			Operation_Type = 2;																						//下一操作
			break;
		}
		case 2:																													//东西向黄灯开始闪烁,绿灯关闭
		{
			LED_G1 = 0;
			delay_ms(333);
			LED_Y1 = ~ LED_Y1;
			if(++Flash_Count != 6)
				return;																											//闪烁3次
			Flash_Count = 0;
			Operation_Type = 3;																						//下一操作
			break;
		}		
		case 3:																													//东西向红灯与南北向绿灯亮
		{
			LED_R1 = 1;	LED_Y1 = 0;	LED_G1 = 0;
			LED_R2 = 0;	LED_Y2 = 0;	LED_G2 = 1;
			Change_Flag = 0;
			while(!Change_Flag);																					//延时
			Change_Flag = 0;
			Operation_Type = 4;																						//下一操作
			break;
		}		
		case 4:																													//南北向黄灯开始闪烁
		{
			LED_G2 = 0;
			delay_ms(333);
			LED_Y2 = ~ LED_Y2;
			if(++Flash_Count != 6)
				return;																											//闪烁3次
			Flash_Count = 0;
			Operation_Type = 1;																						//下一操作
			break;
		}			
	}			
	LCD5110_SetBL(0);																									//关闭屏幕背光
	UI_Run(RunCyle);																									//显示正常显示界面
}
Exemple #2
0
static int GetKeyPress(void)
{
	int keycode;

	if (UI_alt_function >= 0)
		return 0x1b; /* escape - go to Main Menu */

	PLATFORM_DisplayScreen();

	for (;;) {  
		static int rep = KB_DELAY;
		if (PLATFORM_Keyboard() == AKEY_NONE) {
			rep = KB_DELAY;
			break;
		}
		
		if (rep == 0) {
			rep = KB_AUTOREPEAT;
			break;
		}
		rep--;
		Atari800_Sync();
	}

	do { 
#ifdef DIRECTX
		DoEvents();
#endif	
		Atari800_Sync();
		keycode = PLATFORM_Keyboard();
		switch (keycode) {
		case AKEY_WARMSTART:
			UI_alt_function = UI_MENU_RESETW;
			return 0x1b; /* escape */
		case AKEY_COLDSTART:
			UI_alt_function = UI_MENU_RESETC;
			return 0x1b; /* escape */
		case AKEY_EXIT:
			UI_alt_function = UI_MENU_EXIT;
			return 0x1b; /* escape */
		case AKEY_UI:
#ifdef DIRECTX			
			UI_Run();
#else	
			if (UI_alt_function >= 0)  /* Alt+letter, not F1 */
#endif
			return 0x1b; /* escape */				
			break;
		case AKEY_SCREENSHOT:
			UI_alt_function = UI_MENU_PCX;
			return 0x1b; /* escape */
		case AKEY_SCREENSHOT_INTERLACE:
			UI_alt_function = UI_MENU_PCXI;
			return 0x1b; /* escape */
		default:
			UI_alt_function = -1; /* forget previous Main Menu shortcut */
			break;
		}
	} while (keycode < 0);

	return UI_BASIC_key_to_ascii[keycode];
}