From 5b6fe0edc2790d1948c09b191a2a565e8874f875 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 24 五月 2022 09:57:23 +0800 Subject: [PATCH] V1.64 只和3个基站测距 --- 源码/核心板/Src/main.c | 57 ++++++++++++--------------------------------------------- 1 files changed, 12 insertions(+), 45 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" index e80c138..2218dec 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/main.c" @@ -12,34 +12,7 @@ #include "ADC.h" //#define DEBUG_MODE -/* - * rlv:重装载寄存器的值,取值范围为:0-0XFFF - * 函数调用举例: - * IWDG_Config(IWDG_Prescaler_64 ,625); // IWDG 1s 超时溢出 - * (64/40)*625 = 1s - */ -void IWDG_Config(uint8_t prv ,uint16_t rlv) -{ - // 使能 预分频寄存器PR和重装载寄存器RLR可写 - IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable ); - - // 设置预分频器值 - IWDG_SetPrescaler( prv ); - - // 设置重装载寄存器值 - IWDG_SetReload( rlv ); - - // 把重装载寄存器的值放到计数器中 - IWDG_ReloadCounter(); - - // 使能 IWDG - IWDG_Enable(); -} -void IWDG_Feed(void) -{ - IWDG_ReloadCounter(); -} void Device_Init(void) { RCC_Configuration(); @@ -54,8 +27,7 @@ Uart1_Init(); Spi_Init(); ADC_Configuration(); - IWDG_Config(IWDG_Prescaler_128 ,4095); //10s - IWDG_Feed(); + GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); } u8 anchor_type; @@ -73,7 +45,7 @@ memcpy(&hbsend[14],&checksum,2); } uint16_t vel_factor,pos_factor; -u16 tyncpoll_time,dist_threshold; +u16 tyncpoll_time; u16 slottime,max_slotpos; extern u8 module_power; extern u16 total_slotnum; @@ -100,16 +72,10 @@ { g_com_map[COM_INTERVAL]=100; } - - g_com_map[VERSION] = 0x012d; -dist_threshold = (g_com_map[SPEEDFILTER_THRES]*10)/(1000/g_com_map[COM_INTERVAL]); - if(dist_threshold<300) - {dist_threshold = 300;} - if(dist_threshold>15000) - {dist_threshold = 15000;} + g_com_map[VERSION] = 0x0140; g_com_map[SW_TYPE] = SW_FANGZHUANG; dev_id = g_com_map[DEV_ID]; - slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*SLOT_SCALE)+3; + slottime=4; max_slotpos=g_com_map[COM_INTERVAL]/slottime; tyncpoll_time=(g_com_map[DEV_ID]%max_slotpos)*slottime; module_power = g_com_map[POWER]; @@ -190,7 +156,7 @@ } if(flag_newsecond) { - uint32_t temp23; +// uint32_t temp23; // temp23 = dwt_read32bitreg(CHAN_CTRL_ID) ; // if(temp23!=0x4A480022) // { @@ -242,10 +208,12 @@ // Delay_ms(100); SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } - if(g_com_map[CNT_REBOOT]==1) + if(g_com_map[CNT_REBOOT]==1) { - FactorySettings(); - + g_com_map[CNT_REBOOT]=0; + g_com_map[MAP_SIGN_INDEX]=0; + save_com_map_to_flash(); + delay_ms(100); SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } if(g_com_map[CNT_RESTART]==1) @@ -255,13 +223,12 @@ delay_ms(100); SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } - if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0) + if(g_com_map[MAP_SIGN_INDEX]!=0x55AA||g_com_map[COM_INTERVAL]==0||g_com_map[COM_INTERVAL]>1000) { SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader } - } - + } int main(void) { -- Gitblit v1.9.3