nkjnm
Dependencies: MAX44000 nexpaq_mdk
Fork of LED_Demo by
main.cpp
- Committer:
- jowen
- Date:
- 2016-09-19
- Revision:
- 2:3842948024ca
- Parent:
- 0:b86eda0e990d
- Child:
- 3:9d15891f9352
File content as of revision 2:3842948024ca:
#include "mbed.h" #include "nexpaq_mdk.h" #ifdef __cplusplus extern "C" { #endif extern volatile uint8_t flag_jump_bsl; #ifdef __cplusplus } #endif DigitalOut ledR(P2_4, LED_OFF); DigitalOut ledG(P2_5, LED_OFF); DigitalOut ledB(P2_6, LED_OFF); DigitalIn button(P0_1, PullUp); /***** Definitions *****/ #define FUNCTION_TABLE_NUM 1 #define UUID_NUM 16 //UUID number is 16, don't change it #define BUTTON_DEBOUNCE 5 #define DBG_MSG /***** Globals *****/ void my_function_CMD_2700(unsigned char *pData, unsigned char len); const MDK_REGISTER_CMD my_cmd_func_table[FUNCTION_TABLE_NUM] = { {0x2700, my_function_CMD_2700}, // Command -> function }; int btnCnt = 0; int btnSts = 0; unsigned char btnPress = 0x01; /***** Functions *****/ void my_function_CMD_2700(unsigned char *pData, unsigned char len){ unsigned char response = 0x00; ledR = (pData[0]>0) ? LED_ON : LED_OFF ; ledG = (pData[1]>0) ? LED_ON : LED_OFF ; ledB = (pData[2]>0) ? LED_ON : LED_OFF ; np_api_upload(0x2701, &response, 1); #ifdef DBG_MSG printf("LED Command Received\n\r"); #endif } /******************************************************************************/ void app_setup(){ // np_api_set_app_version(0, 0, 3); if ( np_api_register((MDK_REGISTER_CMD*)my_cmd_func_table, FUNCTION_TABLE_NUM) == MDK_REGISTER_FAILD ) { // Register failed handle code error("MDK Register Failed"); } #ifdef DBG_MSG printf("MDK Commands Registered\n\r"); #endif } void app_loop() { if (btnSts) { btnCnt = (button) ? 0 : (btnCnt + 1); if (btnCnt >= BUTTON_DEBOUNCE) { np_api_upload(0x2800, &btnPress, 1); btnSts = !btnSts; btnCnt = 0; #ifdef DBG_MSG printf("Button Pressed\n\r"); #endif } } else { btnCnt = (!button) ? 0 : (btnCnt + 1); if (btnCnt >= BUTTON_DEBOUNCE) { btnSts = !btnSts; btnCnt = 0; } } } int main(void){ uint32_t cnt, i; cnt = 500; ledR = 1; ledG = 0; ledB = 1; np_api_init(); app_setup(); np_api_start(); //Thread::wait(5000); while(1){ app_loop(); np_api_bsl_chk(); Thread::wait(50); if (cnt) { cnt--; if (cnt == 0) { ledR = 1; ledG = 1; ledB = 1; Thread::wait(50); cnt = 1000; //NVIC_SystemReset(); } } i = cnt%30; if (i == 10) { ledR = 1; ledG = 1; ledB = 1; } else if (i == 20){ ledR = 1; ledG = 0; ledB = 1; } else if (i == 0) { ledR = 1; ledG = 1; ledB = 0; } } return 0; }