From 28f37df5dd32d6630dbcc23dca88f6a3ae063d7f Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期五, 23 五月 2025 18:03:21 +0800 Subject: [PATCH] 移植了国产加速度计的计步逻辑,逻辑是30s没有步数进入休眠模式1分钟上传一次 --- keil/include/drivers/mk_misc.c | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/keil/include/drivers/mk_misc.c b/keil/include/drivers/mk_misc.c index 5fbbdb2..99604ab 100644 --- a/keil/include/drivers/mk_misc.c +++ b/keil/include/drivers/mk_misc.c @@ -382,14 +382,31 @@ void sys_reset(uint32_t error) { - LOG_INFO(TRACE_MODULE_DRIVER, "system reboot%x", error); + //LOG_INFO(TRACE_MODULE_DRIVER, "system reboot%x", error); delay_us(10000); // reboot reset_module(RESET_MODULE_REBOOT); } - +void delay_US(uint32_t nTimer) +{ + uint32_t i=0; + for(i=0;i<nTimer;i++){ + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); + __NOP();__NOP();__NOP();__NOP(); + } +} +void delay_ms(uint32_t nTimer) +{ + uint32_t i=1000*nTimer; + delay_US(i); +} void delay_us(uint32_t cnt) { #define SYSTEM_CLOCK_MHZ 62.4 @@ -425,15 +442,27 @@ "bhi loop%=\n" "pop {r4,r5}\n" "exit%=:\n" - : - : [mult_hi] "i"(SYSTEM_CLOCK_MULT_HI), [mult_lo] "i"(SYSTEM_CLOCK_MULT_LO), [shift] "i"(SYSTEM_CLOCK_LSLS_BITS), [adjust] "i"(AAPCS_PREP_CYCLES), - [decr] "i"(DELAY_LOOP_CYCLES)); + : + : [mult_hi] "i"(SYSTEM_CLOCK_MULT_HI), [mult_lo] "i"(SYSTEM_CLOCK_MULT_LO), [shift] "i"(SYSTEM_CLOCK_LSLS_BITS), [adjust] "i"(AAPCS_PREP_CYCLES), + [decr] "i"(DELAY_LOOP_CYCLES)); #if defined(__GNUC__) && !defined(__ARMCC_VERSION) __asm volatile(".syntax divided\n"); #endif } - +//void delay_us(uint32_t nTimer) +//{ +// uint32_t i=0; +// for(i=0;i<nTimer;i++){ +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP();__NOP(); +// __NOP();__NOP();__NOP();__NOP(); +// } +//} uint8_t count_bits(uint32_t value) { uint8_t count = 0; -- Gitblit v1.9.3