| | |
| | | u16 slottime,max_slotpos; |
| | | extern u8 module_power; |
| | | extern u16 total_slotnum; |
| | | void ComMapCheck(void) |
| | | { |
| | | if(g_com_map[COM_INTERVAL]<10) |
| | | { |
| | | g_com_map[COM_INTERVAL]=500; |
| | | } |
| | | if(g_com_map[COM_INTERVAL]>1000) |
| | | { |
| | | g_com_map[COM_INTERVAL]=1000; |
| | | } |
| | | if(module_power>67) |
| | | {module_power=67;} |
| | | if(module_power<0) |
| | | {module_power=0;} |
| | | if(g_com_map[MAX_REPORT_ANC_NUM]>10) |
| | | {g_com_map[MAX_REPORT_ANC_NUM]=10;} |
| | | if(g_com_map[MAX_REPORT_ANC_NUM]<1) |
| | | {g_com_map[MAX_REPORT_ANC_NUM]=1;} |
| | | if(g_com_map[IMU_THRES]>10) |
| | | {g_com_map[IMU_THRES]=10;} |
| | | if(g_com_map[IMU_THRES]<1) |
| | | {g_com_map[IMU_THRES]=1;} |
| | | } |
| | | void Program_Init(void) |
| | | { float temp; |
| | | u16 temp2; |
| | |
| | | save_com_map_to_flash(); |
| | | #endif |
| | | OUT485_ENABLE; |
| | | g_com_map[VERSION] = 0x0113; |
| | | ComMapCheck(); |
| | | g_com_map[VERSION] = 0x0201; |
| | | dev_id = g_com_map[DEV_ID]; |
| | | slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*0.4)+3; |
| | | slottime=ceil((double)g_com_map[MAX_REPORT_ANC_NUM]*SLOT_SCALE)+3; |
| | | max_slotpos=g_com_map[COM_INTERVAL]/slottime; |
| | | tyncpoll_time=(g_com_map[DEV_ID]%max_slotpos)*slottime; |
| | | module_power = g_com_map[POWER]; |
| | | total_slotnum = 1000/g_com_map[COM_INTERVAL]; |
| | | if(module_power>67) |
| | | { |
| | | module_power=67; |
| | | } |
| | | |
| | | anchor_type = dev_id%3; |
| | | |
| | | if(g_com_map[DEV_ROLE]) |
| | | { |
| | | printf("æ ç¾ID: %d .\r\n",dev_id); |
| | |
| | | printf("忬¡é讯åºç«æ°é: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]); |
| | | }else{ |
| | | |
| | | anchor_type = dev_id%g_com_map[MAX_REPORT_ANC_NUM]; |
| | | printf("åºç«ID: %x .\r\n",dev_id); |
| | | printf("åºç«ç±»å: %c .\r\n",anchor_type+0x41); |
| | | printf("忬¡é讯åºç«æ°é: %d个.\r\n",g_com_map[MAX_REPORT_ANC_NUM]); |
| | |
| | | } |
| | | if(target_time>1000) |
| | | {target_time-=1000;} |
| | | |
| | | #ifdef USART_INTEGRATE_OUTPUT |
| | | if(g_com_map[DEV_ROLE]==0&&usart_send_flag) |
| | | {u16 checksum; |
| | | usart_send_flag=0; |
| | | usart_send_anc[2] = 4;//æ£å¸¸æ¨¡å¼ |
| | | usart_send_anc[2] = 5;//æ£å¸¸æ¨¡å¼ |
| | | usart_send_anc[3] = anc_report_num*6+2;//æ£å¸¸æ¨¡å¼ |
| | | checksum = Checksum_u16(&usart_send_anc[2],anc_report_num*6+2); |
| | | memcpy(&usart_send_anc[4+anc_report_num*6],&checksum,2); |
| | | UART_PushFrame(usart_send_anc,6+anc_report_num*6); |
| | | anc_report_num=0; |
| | | } |
| | | #endif |
| | | if(g_com_map[CNT_UPDATE]==1) |
| | | { |
| | | uint32_t result = 0; |
| | |
| | | usart_send[1]=0xAA; |
| | | usart_send_anc[0]=0x55; |
| | | usart_send_anc[1]=0xAA; |
| | | |
| | | //SendComMap(50, 0); |
| | | while(1) |
| | | { |
| | | g_start_sync_flag=0; |