开的定时器打印,不重启了?
This commit is contained in:
parent
0784704e1a
commit
8ed4f9abb2
|
@ -53,7 +53,7 @@ void BSP_NoNeeedReplyCMd(void)
|
|||
|
||||
// How often to perform periodic event
|
||||
// TODO:这里长点功耗低
|
||||
#define SBP_PERIODIC_EVT_PERIOD (1600 * 60 * 3) // (160 = 100ms)
|
||||
#define SBP_PERIODIC_EVT_PERIOD (1600 * 60 * 1) // (160 = 100ms)
|
||||
|
||||
// How often to perform read rssi event
|
||||
#define SBP_READ_RSSI_EVT_PERIOD (1600 * 3) // (160 = 100ms)
|
||||
|
|
|
@ -265,6 +265,7 @@ int main(void)
|
|||
GAPRole_PeripheralInit();
|
||||
Peripheral_Init();
|
||||
|
||||
|
||||
for (uint8_t i = 0; i < 10; i++)
|
||||
{
|
||||
if (TMOS_GetSystemClock() > 0)
|
||||
|
@ -325,6 +326,8 @@ int main(void)
|
|||
|
||||
IWDG_Init(IWDG_TIMEOUT_MS);
|
||||
|
||||
// BSP_TMR0_Init();
|
||||
|
||||
// logDebug("BSP_Get_Tick1 %d", BSP_Get_Tick());
|
||||
// DelayMs(1000);
|
||||
// logDebug("BSP_Get_Tick2 %d", BSP_Get_Tick());
|
||||
|
|
|
@ -21,10 +21,12 @@
|
|||
#define RB_WR_PROTECT 0x40000000 // RO, write protect
|
||||
#define RB_IWDG_EN 0x80000000 // RO, watch-dog enable
|
||||
|
||||
#define IWDG_TIMEOUT_MS (10000)
|
||||
#define IWDG_FEED_MS (3000)
|
||||
#define IWDG_TIMEOUT_MS (5000)
|
||||
#define IWDG_FEED_MS (2500)
|
||||
|
||||
#define IWIG_FEED_EVENT (0x01 << 0)
|
||||
#define IWIG_FEED_EVENT (0x01 << 0)
|
||||
#define TMR0_START_EVENT (0x01 << 1)
|
||||
#define TMR0_END_EVENT (0x01 << 2)
|
||||
|
||||
void IWDG_Init(uint16_t ms);
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ uint32_t CH5XX_GetTimeStamp(uint16_t *tick);
|
|||
|
||||
uint32_t BSP_Get_Tick(void);
|
||||
|
||||
|
||||
void BSP_TMR0_Init();
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -29,6 +29,11 @@ uint16_t min_number = 0;
|
|||
uint16_t max_number = 0;
|
||||
double voltage = 0;
|
||||
|
||||
// 读adc的 一般要看有没有中断调用,如果有中断调用, 就存在风险,否则就没啥风险
|
||||
// 通用的做是, 可以先复现, 看下复现时候的电流, 根据电流来判断大概运行的位置,
|
||||
// 比如卡死时候电流为mA级别的, 可能就就是代码卡到某个函数里面了
|
||||
// , 这时候可以加入一个高优先级的定时器, 定时送PC指针,当卡死时候, 看下PC指针, 就能看到卡到什么地方了,
|
||||
|
||||
// https://www.cnblogs.com/iot-fan/p/14304854.html
|
||||
__HIGH_CODE
|
||||
uint8_t BSP_ReadVbat(void)
|
||||
|
|
|
@ -409,10 +409,10 @@ int BSP_ReadTempHumi(float *humi, float *temp)
|
|||
int ret;
|
||||
|
||||
GXHTC3C_Wakeup();
|
||||
DelayMs(1);
|
||||
DelayMs(2);
|
||||
|
||||
GXHTC3C_GetStart();
|
||||
DelayMs(3);
|
||||
DelayMs(4);
|
||||
float _humi, _temp;
|
||||
ret = GXHTC3C_GetTempHumi(&_humi, &_temp);
|
||||
if (ret == 0)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-15 16:13:41
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2025-05-21 13:11:02
|
||||
* @LastEditTime : 2025-06-03 12:08:25
|
||||
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_iwdg.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -14,6 +14,8 @@
|
|||
#include "log.h"
|
||||
#include "bsp_tim.h"
|
||||
|
||||
#include "SLEEP.h"
|
||||
|
||||
// https://www.cnblogs.com/debugdabiaoge/p/17580033.html
|
||||
// https://www.cnblogs.com/risc5-ble/p/17853714.html
|
||||
|
||||
|
@ -39,9 +41,27 @@ uint16_t IWDG_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
// uint8_t* a = tmos_msg_allocate(1);
|
||||
uint32_t tmos_memory_getlen(void);
|
||||
logDebug("tmos_memory_getlen = %d" , tmos_memory_getlen());
|
||||
|
||||
BSP_TMR0_Init();
|
||||
BSP_BlockSleep();
|
||||
|
||||
// tmos_start_task(task_id, IWIG_FEED_EVENT, MS1_TO_SYSTEM_TIME(IWDG_FEED_MS));
|
||||
return (events ^ IWIG_FEED_EVENT);
|
||||
}
|
||||
if (events & TMR0_START_EVENT)
|
||||
{
|
||||
BSP_TMR0_Init();
|
||||
BSP_BlockSleep();
|
||||
tmos_start_task(task_id, TMR0_END_EVENT, MS1_TO_SYSTEM_TIME(20));
|
||||
return (events ^ TMR0_START_EVENT);
|
||||
}
|
||||
if (events & TMR0_END_EVENT)
|
||||
{
|
||||
BSP_RequestSleep();
|
||||
tmos_start_task(IWDGTaskId, TMR0_START_EVENT, MS1_TO_SYSTEM_TIME(1000));
|
||||
return (events ^ TMR0_END_EVENT);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -82,6 +102,7 @@ void IWDG_Init(uint16_t ms)
|
|||
IWDGTaskId = TMOS_ProcessEventRegister(IWDG_ProcessEvent);
|
||||
// tmos_set_event(IWDGTaskId, IWIG_FEED_EVENT);
|
||||
tmos_start_reload_task(IWDGTaskId, IWIG_FEED_EVENT, MS1_TO_SYSTEM_TIME(IWDG_FEED_MS));
|
||||
// tmos_start_task(IWDGTaskId, TMR0_START_EVENT, MS1_TO_SYSTEM_TIME(1000));
|
||||
}
|
||||
|
||||
// #define RB_RESET_FLAG 0x07 // RO: recent reset flag
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-15 15:01:15
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2025-05-16 18:21:05
|
||||
* @LastEditTime : 2025-06-03 12:45:41
|
||||
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_tim.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -10,6 +10,20 @@
|
|||
*/
|
||||
#include "bsp_tim.h"
|
||||
|
||||
#include "bsp_uart.h"
|
||||
#include "log.h"
|
||||
|
||||
#include "SLEEP.h"
|
||||
|
||||
// https://www.cnblogs.com/debugdabiaoge/p/17580033.html
|
||||
// https://www.cnblogs.com/risc5-ble/p/17853714.html
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE 1
|
||||
|
||||
#undef LOG_TAG
|
||||
#define LOG_TAG "tim"
|
||||
|
||||
// tick_1ms_cnt在SysTick_Handler()中1ms +1
|
||||
volatile uint32_t tick_1ms_cnt = 0;
|
||||
|
||||
|
@ -86,6 +100,99 @@ uint32_t BSP_Get_Tick(void)
|
|||
// logDebug("seconds = %d.%d", seconds, tick_1sec * 1000 / 32768);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* 定时器0,设定100ms定时器进行IO口闪灯, PB15-LED */
|
||||
void BSP_TMR0_Init()
|
||||
{
|
||||
TMR0_TimerInit(FREQ_SYS / 1000 * 20); // 设置定时时间
|
||||
// TMR0_TimerInit(FREQ_SYS); // 设置定时时间
|
||||
TMR0_ITCfg(ENABLE, TMR0_3_IT_CYC_END); // 开启中断
|
||||
PFIC_EnableIRQ(TMR0_IRQn);
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
* @fn TMR0_IRQHandler
|
||||
*
|
||||
* @brief TMR0中断函数
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
__INTERRUPT
|
||||
__HIGH_CODE
|
||||
void TMR0_IRQHandler(void) // TMR0 定时中断
|
||||
{
|
||||
if(TMR0_GetITFlag(TMR0_3_IT_CYC_END))
|
||||
{
|
||||
TMR0_ClearITFlag(TMR0_3_IT_CYC_END); // 清除中断标志
|
||||
|
||||
BSP_RequestSleep();
|
||||
PFIC_DisableIRQ(TMR0_IRQn);
|
||||
#if 0
|
||||
uint32_t v_mepc, v_mcause, v_mtval;
|
||||
logDebug("hardfault\n");
|
||||
|
||||
v_mepc = __get_MEPC();
|
||||
v_mcause = __get_MCAUSE();
|
||||
v_mtval = __get_MTVAL();
|
||||
|
||||
logDebug("mepc:%08x\n", v_mepc);
|
||||
logDebug("mcause:%08x\n", v_mcause);
|
||||
logDebug("mtval:%08x\n", v_mtval);
|
||||
|
||||
FLASH_ROM_SW_RESET();
|
||||
sys_safe_access_enable();
|
||||
R16_INT32K_TUNE = 0xFFFF;
|
||||
sys_safe_access_disable();
|
||||
sys_safe_access_enable();
|
||||
R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET;
|
||||
sys_safe_access_disable();
|
||||
#endif
|
||||
// struct __MEMORY_CTL
|
||||
// {
|
||||
// struct __MEMORY_CTL *pNext;
|
||||
// uint16_t len;
|
||||
// uint16_t used;
|
||||
// };
|
||||
// typedef struct __MEMORY_CTL MemoryCtl;
|
||||
|
||||
// extern MemoryCtl *MemCtlStart;
|
||||
// extern MemoryCtl *MemCtlEnd;
|
||||
// MemoryCtl *MemHead;
|
||||
// MemHead = MemCtlStart;
|
||||
// while (MemHead != MemCtlEnd)
|
||||
// {
|
||||
// logDebug("|%8x,%8x,%8d.....\n", MemHead->used, (uint32_t)MemHead,
|
||||
// (uint32_t)(MemHead->pNext) - (uint32_t)MemHead - sizeof(struct __MEMORY_CTL));
|
||||
// MemHead = MemHead->pNext;
|
||||
// }
|
||||
// logDebug("\n");
|
||||
|
||||
uint32_t v_mepc, v_mcause, v_mtval;
|
||||
|
||||
v_mepc = __get_MEPC();
|
||||
v_mcause = __get_MCAUSE();
|
||||
v_mtval = __get_MTVAL();
|
||||
|
||||
logDebug("00000000000000000");
|
||||
logDebug("mepc:%08x", v_mepc);
|
||||
logDebug("mcause:%08x", v_mcause);
|
||||
logDebug("mtval:%08x", v_mtval);
|
||||
logDebug("1111111111111111");
|
||||
|
||||
#if 0
|
||||
FLASH_ROM_SW_RESET();
|
||||
sys_safe_access_enable();
|
||||
R16_INT32K_TUNE = 0xFFFF;
|
||||
sys_safe_access_disable();
|
||||
sys_safe_access_enable();
|
||||
R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET;
|
||||
sys_safe_access_disable();
|
||||
#endif
|
||||
// while (1);
|
||||
}
|
||||
}
|
||||
|
||||
// SysTick中断函数
|
||||
__INTERRUPT
|
||||
__HIGH_CODE
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-15 15:01:15
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2025-05-30 16:53:07
|
||||
* @LastEditTime : 2025-06-03 10:43:05
|
||||
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -474,6 +474,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
boost_en_flag = 0;
|
||||
return (events ^ VAVLE_CLOSE_END_EVT);
|
||||
}
|
||||
#if 0
|
||||
// 开始测量电磁铁电感
|
||||
if (events & VAVLE_DECT_SWITCH_START_EVT)
|
||||
{
|
||||
|
@ -507,7 +508,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
|
||||
return (events ^ VAVLE_DECT_SWITCH_CALIB_EVT);
|
||||
}
|
||||
|
||||
#endif
|
||||
if (events & VAVLE_LOW_VBAT_ALARM_EVT)
|
||||
{
|
||||
logDebug("VAVLE_LOW_VBAT_ALARM_EVT");
|
||||
|
|
22
HAL/SLEEP.c
22
HAL/SLEEP.c
|
@ -142,32 +142,17 @@ uint32_t CH58x_LowPower(uint32_t time)
|
|||
__nop();
|
||||
}
|
||||
#endif
|
||||
|
||||
BSP_KEY_EnterLowpower();
|
||||
// LOW POWER-sleep模式
|
||||
if (!RTCTigFlag)
|
||||
{
|
||||
if (block_boost_flag == false)
|
||||
{
|
||||
BOOST_EN;
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOST_OFF_DEINIT;
|
||||
}
|
||||
if (true == block_sleep_flag)
|
||||
{
|
||||
// logDebug("block_sleep");
|
||||
return 0;
|
||||
}
|
||||
BSP_KEY_EnterLowpower();
|
||||
|
||||
LowPower_Sleep(RB_PWR_RAM32K | RB_PWR_RAM96K | RB_PWR_EXTEND);
|
||||
R8_RTC_FLAG_CTRL = (RB_RTC_TMR_CLR | RB_RTC_TRIG_CLR);
|
||||
RTC_SetTignTime(time);
|
||||
sys_safe_access_enable();
|
||||
R8_HFCK_PWR_CTRL |= RB_CLK_XT32M_KEEP;
|
||||
sys_safe_access_disable();
|
||||
|
||||
|
||||
if(!RTCTigFlag)
|
||||
{
|
||||
LowPower_Halt();
|
||||
|
@ -175,9 +160,6 @@ uint32_t CH58x_LowPower(uint32_t time)
|
|||
R8_RTC_FLAG_CTRL = (RB_RTC_TMR_CLR | RB_RTC_TRIG_CLR);
|
||||
HSECFG_Current(HSE_RCur_100); // 降为额定电流(低功耗函数中提升了HSE偏置电流)
|
||||
|
||||
// i = RTC_GetCycle32k();
|
||||
// while (i == RTC_GetCycle32k());
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -129,7 +129,8 @@ void SetSysClock(SYS_CLKTypeDef sc)
|
|||
*
|
||||
* @return none
|
||||
*/
|
||||
__attribute__((section(".highcode_init"))) void highcode_init(void)
|
||||
__attribute__((section(".highcode_init")))
|
||||
void highcode_init(void)
|
||||
{
|
||||
R32_SAFE_MODE_CTRL |= RB_XROM_312M_SEL;
|
||||
R8_SAFE_MODE_CTRL &= ~RB_SAFE_AUTO_EN;
|
||||
|
|
Loading…
Reference in New Issue