From ae079c1fc5d990ba55714d4b3a51b19f96edaec4 Mon Sep 17 00:00:00 2001 From: WXK <287788329@qq.com> Date: 星期四, 24 四月 2025 16:01:43 +0800 Subject: [PATCH] 改为中断来低电平触发发送当前扫描数据,3s内扫描不到的会退出,串口来55 AA 75 70 64 61 74 65,进入升级模式 --- 01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c | 28 ++++++++++++++++++++++------ 1 files changed, 22 insertions(+), 6 deletions(-) diff --git a/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c b/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c index 0d934bf..d8b216b 100644 --- a/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c +++ b/01_SDK/nimble/os/freertos/portable/RVDS/ARM_CM0/port.c @@ -361,11 +361,11 @@ CONFIG_RAM_CODE void UpdateTickAndSch(void) { uint32_t ulPreviousMask; - - vTaskTickSet(lp_get_curr_tmr_cnt()); ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR(); { + vTaskTickSet(lp_get_curr_tmr_cnt()); + /* Increment the RTOS tick. */ if( xTaskIncrementTick() != pdFALSE ) { @@ -379,19 +379,21 @@ CONFIG_RAM_CODE void xPortSysTickHandler( void ) { - #if ( configUSE_TICKLESS_IDLE == 1 ) + PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_OS_TICK_IRQ, 1); + + #if ( configUSE_TICKLESS_IDLE == 1 ) UpdateTickAndSch(); if(portNVIC_SYSTICK_LOAD_REG != (ulTimerCountsForOneTick - 1UL)) { portNVIC_SYSTICK_CTRL_REG = 0UL; portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL; - + /* Configure SysTick to interrupt at the requested rate. */ portNVIC_SYSTICK_LOAD_REG = ulTimerCountsForOneTick - 1UL; portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT_CONFIG | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT ); } - #else + #else uint32_t ulPreviousMask; ulPreviousMask = portSET_INTERRUPT_MASK_FROM_ISR(); @@ -404,7 +406,9 @@ } } portCLEAR_INTERRUPT_MASK_FROM_ISR( ulPreviousMask ); - #endif + #endif + + PAN_IO_TIMING_TRACK_LEVEL(CONFIG_TRACK_PIN_OS_TICK_IRQ, 0); } /*-----------------------------------------------------------*/ @@ -433,3 +437,15 @@ #endif /* configOVERRIDE_DEFAULT_TICK_CONFIGURATION */ +/*-----------------------------------------------------------*/ +CONFIG_RAM_CODE void vPortSysTickRestart(uint32_t tick) +{ + /* restart systick, use configTICK_ON_WAKING_RATE_HZ */ + portNVIC_SYSTICK_CTRL_REG = 0UL; + portNVIC_SYSTICK_CURRENT_VALUE_REG = 0UL; + + /* Configure SysTick to interrupt at the requested rate. */ + portNVIC_SYSTICK_LOAD_REG = tick - 1; //ulTimerCountsForOneTick - 1UL; + portNVIC_SYSTICK_CTRL_REG = ( portNVIC_SYSTICK_CLK_BIT_CONFIG | portNVIC_SYSTICK_INT_BIT | portNVIC_SYSTICK_ENABLE_BIT ); +} + -- Gitblit v1.9.3