Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: nexpaq_dev nexpaq_mdk
Fork of lib_tst_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;
}
