Feat(#7): modularize boot function
https://www.notion.so/7-Modularize-some-function-e19a0f14fb3f494b9fbb5103d7befb7f
This commit is contained in:
+1
-1
@@ -5,5 +5,5 @@
|
||||
#define VERSION_DATE_MONTH 5
|
||||
#define VERSION_DATE_DAY 18
|
||||
#define VERSION_DATE_HOUR 11
|
||||
#define VERSION_DATE_MINUTE 9
|
||||
#define VERSION_DATE_MINUTE 34
|
||||
#endif
|
||||
|
||||
+6
-5
@@ -114,7 +114,7 @@ static bool FLT_event = false;
|
||||
/**
|
||||
* ZM function
|
||||
*/
|
||||
static void ZM_init();
|
||||
static void device_init();
|
||||
|
||||
// callback for Z meter
|
||||
typedef void (*update_instruction_callback_type)(uint8_t ins_type, uint8_t ins_len, uint8_t *ins);
|
||||
@@ -949,27 +949,28 @@ static void SimpleBLEPeripheral_clockHandler(UArg arg)
|
||||
// Semaphore_post(semaphore); // send samaphore to jump out of infinite waiting(simple_peripheral.c line570)
|
||||
}
|
||||
|
||||
static void ZM_init()
|
||||
static void device_init()
|
||||
{
|
||||
|
||||
// initialize
|
||||
pin_handle = PIN_open(&ZM_rst, BLE_IO);
|
||||
InitEliteInstruction();
|
||||
|
||||
InitLED();
|
||||
InitTrigChan();
|
||||
Init_Elite15_PIN();
|
||||
ELITE15_SPI_HOLD();
|
||||
|
||||
PIN15_setOutputValue(E_PIN_OFF, 1); // OFF = 1 => turn off 6994
|
||||
PIN15_setOutputValue(E_PIN_3V_PULL_UP_DOWN_0, 0);
|
||||
PIN15_setOutputValue(E_PIN_3V_PULL_UP_DOWN_1, 0);
|
||||
|
||||
disable_trig_output(); // all output disable
|
||||
|
||||
InitEliteInstruction();
|
||||
|
||||
elite_gptimer_open();
|
||||
|
||||
TW1508reset();
|
||||
|
||||
InitGPT();
|
||||
// PIN_registerIntCb(pin_handle, switch_on_callback);
|
||||
// PIN_setInterrupt(pin_handle, CC2650_SHUT_DOWN | PIN_IRQ_POSEDGE);
|
||||
}
|
||||
|
||||
+106
-36
@@ -554,20 +554,100 @@ void elite_gptimer_task(void)
|
||||
|
||||
#include "headstage.h"
|
||||
|
||||
static bool power_on(uint32_t delta_time)
|
||||
{
|
||||
uint32_t t = delta_time;
|
||||
bool elite_on = false;
|
||||
static uint32_t keyTimer = 0;
|
||||
|
||||
keyTimer = keyTimer + t;
|
||||
|
||||
if (keyTimer >= 10000) {
|
||||
PIN15_setOutputValue(E_PIN_5V_enable, 1); // enable 5V
|
||||
|
||||
CPUdelay_us(320); // need delay 320us to stablize power
|
||||
ModeLED(BT_WAIT);
|
||||
|
||||
headstage_init_device_info();
|
||||
|
||||
elite_on = true;
|
||||
}
|
||||
|
||||
return elite_on;
|
||||
}
|
||||
|
||||
/*return the button status*/
|
||||
uint8_t pin_button_get(void)
|
||||
{
|
||||
/*
|
||||
* if btn = 0: press key
|
||||
* if btn = 1: release key
|
||||
*/
|
||||
|
||||
uint8_t btn;
|
||||
|
||||
btn = PIN_getInputValue(CC2650_SHUT_DOWN);
|
||||
|
||||
return btn;
|
||||
}
|
||||
|
||||
/* manage the button control*/
|
||||
static void key_manage(uint32_t delta_time)
|
||||
{
|
||||
uint32_t t = delta_time;
|
||||
static uint32_t keyTimer = 0;
|
||||
static bool byPass1sec = false;
|
||||
|
||||
if (pin_button_get()!=0) {
|
||||
if (keyTimer > 0) {
|
||||
checkFlafLED();
|
||||
byPass1sec = false;
|
||||
}
|
||||
keyTimer = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
keyTimer = keyTimer + t;
|
||||
if (keyTimer >= 30000){
|
||||
PIN15_setOutputValue(E_PIN_5V_enable, 0); // disable 5V
|
||||
|
||||
} else if (keyTimer >= 10000 && !byPass1sec) {
|
||||
Elite_led_color(COLOR_YELLOW);
|
||||
byPass1sec = true;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* toggle 6994 to on*/
|
||||
static void toggle_6994(uint16_t counter6994) {
|
||||
if(counter6994 == CLOCK_ONE_SECOND*5) {
|
||||
PIN15_setOutputValue(E_PIN_OFF, 0); // OFF = 1 => turn off 6994
|
||||
}
|
||||
}
|
||||
|
||||
static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1)
|
||||
{
|
||||
uint8_t key = 0;
|
||||
bool EliteOn = 0;
|
||||
bool elite_on = false;
|
||||
uint32_t check_key_time = 0;
|
||||
uint16_t counter6994 = 0;
|
||||
|
||||
// Initialize application
|
||||
SimpleBLEPeripheral_init();
|
||||
ZM_init();
|
||||
|
||||
// Application main loops
|
||||
GPT.cnt_gpt0 = GPT.cnt_gpt;
|
||||
device_init();
|
||||
|
||||
headstage_init_device_info();
|
||||
while(1) {
|
||||
if (events & SBP_PERIODIC_EVT) {
|
||||
events &= ~SBP_PERIODIC_EVT;
|
||||
GPT_timerIncrement();
|
||||
elite_on = power_on(GPT.cnt_gpt_delta);
|
||||
}
|
||||
if (elite_on)
|
||||
break;
|
||||
}
|
||||
|
||||
// headstage_init_device_info();
|
||||
|
||||
for (;;)
|
||||
{
|
||||
@@ -627,42 +707,34 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1)
|
||||
}
|
||||
}
|
||||
|
||||
GPT_timerIncrement();
|
||||
check_key_time = check_key_time + GPT.cnt_gpt_delta;
|
||||
GPT.BatteryADCCounter = GPT.BatteryADCCounter + GPT.cnt_gpt_delta;
|
||||
GPT.BatteryCheckCounter = GPT.BatteryCheckCounter + GPT.cnt_gpt_delta;
|
||||
|
||||
if (events & SBP_PERIODIC_EVT)
|
||||
{
|
||||
events &= ~SBP_PERIODIC_EVT;
|
||||
|
||||
/* routinely check the button status*/
|
||||
if (check_key_time >= 200) {
|
||||
key_manage(200);
|
||||
check_key_time = 0;
|
||||
}
|
||||
if (!PeriodicEvent)
|
||||
{ // if there is no periodic event
|
||||
key = PIN_getInputValue(CC2650_SHUT_DOWN);
|
||||
if (EliteOn)
|
||||
|
||||
if (counter6994 <= CLOCK_ONE_SECOND * 5)
|
||||
{
|
||||
if (counter6994 < CLOCK_ONE_SECOND * 5)
|
||||
{ // counter6994 enable a IC after 35 counts
|
||||
counter6994++;
|
||||
}
|
||||
else if (counter6994 == CLOCK_ONE_SECOND * 5)
|
||||
{
|
||||
PIN15_setOutputValue(E_PIN_OFF, 0); // OFF = 1 => turn off 6994
|
||||
counter6994++;
|
||||
}
|
||||
else if (counter6994 > CLOCK_ONE_SECOND * 5)
|
||||
{
|
||||
counter6994 = 0;
|
||||
}
|
||||
EliteKeyPress(key);
|
||||
|
||||
GPT.cnt_gpt_delta = GPT.cnt_gpt - GPT.cnt_gpt0;
|
||||
GPT.cnt_gpt0 = GPT.cnt_gpt;
|
||||
|
||||
if (Free_Work_Mode)
|
||||
{
|
||||
wm_deinit();
|
||||
InitEliteInstruction();
|
||||
Free_Work_Mode = false;
|
||||
}
|
||||
toggle_6994(counter6994);
|
||||
counter6994++;
|
||||
}
|
||||
else
|
||||
|
||||
if (Free_Work_Mode)
|
||||
{
|
||||
EliteOn = TurnOnElite(key);
|
||||
wm_deinit();
|
||||
InitEliteInstruction();
|
||||
Free_Work_Mode = false;
|
||||
}
|
||||
|
||||
if (TRIG_TrigEnable)
|
||||
@@ -688,8 +760,6 @@ static void SimpleBLEPeripheral_taskFxn(UArg a0, UArg a1)
|
||||
|
||||
// Perform periodic application task
|
||||
SimpleBLEPeripheral_performPeriodicTask();
|
||||
key = PIN_getInputValue(CC2650_SHUT_DOWN);
|
||||
EliteKeyPress(key); // onPress=> key = 0; 1.lighten LED 2.long press shut down 2650
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user