/** * prepare system on boot */ static void InitializeSystem(void) { #if defined(__18CXX) SetupTimer(); INTCONbits.GIEH = 1; #endif InitLED(); LED_Off(); InitReceiver(); ReceiverOff(); USBDeviceInit(); }
/** * update LED status */ void BlinkUSBStatus(void) { #define BLINK_COUNT (0xffff/16) static UINT16 led_count = 0xffff; static USB_DEVICE_STATE lastState = DETACHED_STATE; static BOOL blinkConfiguredSequence = FALSE; led_count++; if (USBSuspendControl == 1) { LED_Off(); } else { if (USBGetDeviceState() < CONFIGURED_STATE) { if (blinkConfiguredSequence) { blinkConfiguredSequence = FALSE; } if (lastState == CONFIGURED_STATE) { ReceiverOff(); } if (led_count == 0) { LED_On(); } else if (led_count == BLINK_COUNT) { LED_Off(); } } else { if (lastState != CONFIGURED_STATE) { QueueInit(); ReceiverOn(); LED_On(); blinkConfiguredSequence = TRUE; led_count = 0; } else if (blinkConfiguredSequence && led_count == 0) { blinkConfiguredSequence = FALSE; LED_Off(); } } } lastState = USBGetDeviceState(); }
///----------------------------------------------------------------------------- void main(void){ ///---------------------------------------------------------------------------- unsigned char ret; unsigned char cmd; unsigned char data; char mod = 0; ///---------------------------------------------------------------------------- OffPeripherall(); KeypadInit(); UartInit(); LoadAddrRxTx(); ReceiverOn(); ///---------------------------------------------------------------------------- #asm("sei") ///---------------------------------------------------------------------------- while(1){ /// on/off player ------------------------------------------------------------ if(KEY == KEY_PWR){ KeypadClear(); if(mod == 0){ mod = 1; PlayerOn(); }else{ mod = 0; ReceiverOff(); PlayerOff(); } } /// look rx frame ------------------------------------------------------------ ret = UartWaitFrame(&cmd,&data); if(ret == 0x01){ switch(cmd){ case PLAYER_PLAY : PlayerRun(PLAYER_PLAY,PLAYER_NO_ARG); break; case PLAYER_PUASE : PlayerRun(PLAYER_PUASE,PLAYER_NO_ARG); break; case PLAYER_STOP : PlayerRun(PLAYER_STOP,PLAYER_NO_ARG); break; case PLAYER_VOL_UP : PlayerRun(PLAYER_VOL_UP,PLAYER_NO_ARG); break; case PLAYER_VOL_DOWN : PlayerRun(PLAYER_VOL_DOWN,PLAYER_NO_ARG); break; case PLAYER_NEXT : PlayerRun(PLAYER_NEXT,PLAYER_NO_ARG); break; case PLAYER_PREV : PlayerRun(PLAYER_PREV,PLAYER_NO_ARG); break; } } /// if press keypad send command via RF -------------------------------------- if(KEY == KEY_A){ KeypadClear(); UartSendFrame(PLAYER_PLAY,PLAYER_NO_ARG); } if(KEY == KEY_B){ KeypadClear(); UartSendFrame(PLAYER_STOP,PLAYER_NO_ARG); } if(KEY == KEY_C){ KeypadClear(); UartSendFrame(PLAYER_NEXT,PLAYER_NO_ARG); } if(KEY == KEY_D){ KeypadClear(); UartSendFrame(PLAYER_PREV,PLAYER_NO_ARG); } } ///---------------------------------------------------------------------------- }