main: sleep instead of busy-loop
This commit is contained in:
1
Makefile
1
Makefile
@@ -6,6 +6,7 @@ SRCS := \
|
|||||||
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_pwr.c \
|
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_pwr.c \
|
||||||
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_sys.c \
|
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_sys.c \
|
||||||
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_timer0.c \
|
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_timer0.c \
|
||||||
|
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_timer1.c \
|
||||||
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_timer3.c \
|
CH5xx_ble_firmware_library/StdPeriphDriver/CH58x_timer3.c \
|
||||||
CH5xx_ble_firmware_library/RVMSIS/core_riscv.c \
|
CH5xx_ble_firmware_library/RVMSIS/core_riscv.c \
|
||||||
CH5xx_ble_firmware_library/Startup/startup_CH583.S \
|
CH5xx_ble_firmware_library/Startup/startup_CH583.S \
|
||||||
|
|||||||
13
src/main.c
13
src/main.c
@@ -45,6 +45,9 @@ int main()
|
|||||||
TMR0_ITCfg(ENABLE, TMR0_3_IT_CYC_END);
|
TMR0_ITCfg(ENABLE, TMR0_3_IT_CYC_END);
|
||||||
PFIC_EnableIRQ(TMR0_IRQn);
|
PFIC_EnableIRQ(TMR0_IRQn);
|
||||||
|
|
||||||
|
TMR1_TimerInit((FREQ_SYS / 1000));
|
||||||
|
TMR1_ITCfg(ENABLE, TMR0_3_IT_CYC_END);
|
||||||
|
|
||||||
TMR3_TimerInit(FREQ_SYS / 200);
|
TMR3_TimerInit(FREQ_SYS / 200);
|
||||||
TMR3_ITCfg(ENABLE, TMR0_3_IT_CYC_END);
|
TMR3_ITCfg(ENABLE, TMR0_3_IT_CYC_END);
|
||||||
PFIC_EnableIRQ(TMR3_IRQn);
|
PFIC_EnableIRQ(TMR3_IRQn);
|
||||||
@@ -58,6 +61,9 @@ int main()
|
|||||||
|
|
||||||
screen_push(&badge_screen);
|
screen_push(&badge_screen);
|
||||||
|
|
||||||
|
// set SEVONPEND
|
||||||
|
PFIC->SCTLR |= (1 << 4);
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
WWDG_SetCounter(0x7F);
|
WWDG_SetCounter(0x7F);
|
||||||
static int btldr_timer = 0;
|
static int btldr_timer = 0;
|
||||||
@@ -108,6 +114,11 @@ int main()
|
|||||||
TMOS_SystemProcess();
|
TMOS_SystemProcess();
|
||||||
cdc_tick();
|
cdc_tick();
|
||||||
hid_tick();
|
hid_tick();
|
||||||
DelayMs(1);
|
|
||||||
|
while (!TMR1_GetITFlag(TMR0_3_IT_CYC_END)) {
|
||||||
|
__SEV();
|
||||||
|
__asm__ volatile("wfi");
|
||||||
|
}
|
||||||
|
TMR1_ClearITFlag(TMR0_3_IT_CYC_END);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user