board.h 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. #ifndef __BOARD_H__
  2. #define __BOARD_H__
  3. #include "stdint.h"
  4. #include "stdio.h"
  5. #include "hc32l19x.h"
  6. #include "clk_rst.h"
  7. #include "gpio.h"
  8. #include "prj_com.h"
  9. #include "SerPlot_drv.h"
  10. #include "wdg_drv.h"
  11. #include "stdlib.h"
  12. #include "lcd_disp.h" //add by yuewei 20260310
  13. #include <rtthread.h>
  14. //////////////////////////////版本号 调试开关等wxl20260416////////////////////////////////////////////
  15. #define VER_TYPE 1 // type, 1: ultrasound flow meter;
  16. #define VER_OPERATOR 1 // operator, 1: China Telecom;
  17. #define VER_MODULE 4 // module, 1: HC32_BC28;
  18. #define VER_FIRMWARE 1
  19. /////////////////////////////集中显示频繁使用的调试开关及其他宏定义wxl20260416//////////////////////////////
  20. #define BOOTLOADER_ENABLE // 从0x0000启动运行时,屏蔽该宏
  21. //#define APP_DEBUG_PRINT // 调试打印开关
  22. // #define DEBUG_LOW_POWER
  23. #define DOG_ENABLE // WXL2026-5-12
  24. #define DEBUG_TDC // HBR2026-10-12
  25. // #define DEBUG_BILL
  26. // #define DEBUG_RESET_LOG_NOT_SEND // wxl2026-5-8 调试阶段,单片机初始运行不记日志,正常运行阶段记上电日志
  27. // #define DEBUG_SAVE_BAK 0
  28. // #define DEBUG_5MIN_REC 1
  29. // #define DEBUG_HOUR_REC 1
  30. // #define DEBUG_MONTH_REC 1
  31. // #define DEBUG_DAY_REC 1
  32. // #define DEBUG_LOG_WARM
  33. // #define DEBUG_PARAM
  34. // #define DEBUG_PATCH
  35. // #define DEBUG_NB
  36. // #define DEBUG_BILL2
  37. // #define DEBUG_BILL
  38. // add by yuewei 20260305 end
  39. // #define RTC_INTERRUPT_TIME_5_S
  40. #define ARM_MATH_CM0PLUS
  41. #if defined(ARM_MATH_CM7) || defined(ARM_MATH_CM4) || defined(ARM_MATH_CM3) || defined(ARM_MATH_CM0) || defined(ARM_MATH_CM0PLUS)
  42. #include "arm_math.h"
  43. #else
  44. #include "math.h"
  45. #define fabsf(x) fabs(x)
  46. #endif
  47. #ifdef __cplusplus
  48. extern "C"
  49. {
  50. #endif
  51. #if defined(__CC_ARM) || defined(__CLANG_ARM)
  52. extern int Image$$ER_IROM1$$Base;
  53. extern int Image$$RW_IRAM1$$ZI$$Limit;
  54. #define VECT_TAB_OFFSET ((uint32_t)&Image$$ER_IROM1$$Base)
  55. #define HEAP_BEGIN ((void *)&Image$$RW_IRAM1$$ZI$$Limit)
  56. #elif __ICCARM__
  57. #pragma section = "CSTACK"
  58. #define HEAP_BEGIN (__segment_end("CSTACK"))
  59. #else
  60. extern int __bss_end;
  61. #define HEAP_BEGIN ((void *)&__bss_end)
  62. #endif
  63. #define HEAP_END ((void *)(0x20000000 + 0x07000))
  64. extern int Stack_Mem;
  65. #define MAIN_STACK_BEGIN ((void *)&Stack_Mem)
  66. #define MAIN_STACK_SIZE ((uint32_t)HEAP_BEGIN - (uint32_t)MAIN_STACK_BEGIN)
  67. #define RCL_38p4K_ENABLE
  68. // set EXT_CAP for 2uA power saving
  69. #define LCD_EXT_CAP
  70. // #define SYSCLK_4M_MODE
  71. // #define SYSCLK_8M_MODE
  72. #define SYSCLK_16M_MODE
  73. #define SLEEPDEEP_ENABLE
  74. #define DEBUG_ENABLE
  75. // #define USE_DEBUG_UART
  76. #define NVIC_PRIO_0 (0x00U)
  77. #define NVIC_PRIO_1 (0x01U)
  78. #define NVIC_PRIO_2 (0x02U)
  79. #define NVIC_PRIO_3 (0x03U)
  80. #define MUX_CH_NUM (4)
  81. // context_m0p.S
  82. /* 32bit CPU */
  83. // typedef long rt_base_t; /**< Nbit CPU related date type */
  84. extern rt_base_t rt_hw_interrupt_disable(void);
  85. extern void rt_hw_interrupt_enable(rt_base_t level);
  86. extern uint32_t SystemCoreClock; // System Clock Frequency (Core Clock)
  87. extern void SystemInit(void); // Initialize the system
  88. // extern void SystemCoreClockUpdate (void); // Update SystemCoreClock variable
  89. // board.c
  90. extern void IRQMutEnable(IRQn_Type IRQn, uint32_t Priority);
  91. extern void systick_init(void);
  92. extern void us_delay(uint32_t us);
  93. extern void CalExpireTime(uint32_t us);
  94. extern void WaitExpireTime(void);
  95. // finsh_drv.c
  96. #ifndef RCL_38p4K_ENABLE
  97. #define USART_BAUDRATE (8192)
  98. #else
  99. #define USART_BAUDRATE (9600)
  100. #endif
  101. #define SERPLOT_DMATX_OFF (0x0001u)
  102. #define YMODEM_UPGRADE_ON (0x0001u)
  103. #define CHECK_ITF_ON (0x0002u)
  104. typedef void (*uart_rx_itf)(uint8_t ch);
  105. typedef void (*ymodem_rx_itf)(uint8_t RxByte, void *arg);
  106. extern uint16_t Finsh_Uart_Mode;
  107. extern uint16_t SerPlot_Mode;
  108. extern int8_t get_nb_imei_code(void);
  109. extern int8_t at_cmd_send(uint8_t stat, char *cmd_str, char *ack, uint16_t retry_time, uint8_t time_out);
  110. extern void finsh_drv_init(void);
  111. extern void print_ch(char ch);
  112. extern void print_str(char *str);
  113. extern void DebugPrintStr(char *Str, uint16_t Len);
  114. extern uint16_t FinSh_Txbuf_Busy(void);
  115. extern void finsh_tx(volatile uint8_t *data, uint16_t len);
  116. extern void PutChar(char ch);
  117. extern void set_shell_rx_itf(uart_rx_itf itf);
  118. extern void set_check_rx_itf(uart_rx_itf itf);
  119. extern void set_ymodem_rx_itf(ymodem_rx_itf itf, void *arg);
  120. // dma_drv.c
  121. extern void DMA_ReqClkOn(void);
  122. extern void DMA_ReqClkOff(void);
  123. extern uint16_t DMA_Busy(void);
  124. // rtc_drv.c
  125. typedef struct
  126. {
  127. uint8_t year;
  128. uint8_t month;
  129. uint8_t day;
  130. uint8_t week;
  131. uint8_t hour;
  132. uint8_t minute;
  133. uint8_t second;
  134. uint8_t flag_1s : 1; // 1s
  135. uint8_t flag_1m : 1; // 1m
  136. uint8_t rsv : 6;
  137. } rtc_run_t;
  138. extern void get_rtc_run(rtc_run_t **rtc_run);
  139. extern void set_rtc_run(rtc_run_t *rtc_run);
  140. extern void rtc_init(rtc_run_t *rtc_run);
  141. extern void set_rtc_date(uint8_t year, uint8_t month, uint8_t day);
  142. extern void get_rtc_date(uint8_t *year, uint8_t *month, uint8_t *day);
  143. extern void set_rtc_time(uint8_t hour, uint8_t min, uint8_t sec);
  144. extern void get_rtc_time(uint8_t *hour, uint8_t *min, uint8_t *sec);
  145. extern uint32_t get_rtc_cnt_int(void);
  146. extern void set_rtc_cnt_int(uint32_t cnt_int);
  147. extern uint32_t get_tdc_rw_err_cnt(void);
  148. // low_pwr_drv.c
  149. extern void debug_stop(void);
  150. extern void exti_init(void);
  151. extern void EnterLowPower(void);
  152. // misc_drv.c
  153. // tdc_spi_drv.c
  154. extern void tdc_spi_init(void);
  155. extern void tdc_spi_wr_d32(uint8_t code, uint32_t data);
  156. extern void tdc_spi_wr_code(uint8_t code);
  157. extern uint32_t tdc_spi_rd_d32(uint8_t code);
  158. extern uint16_t tdc_spi_rd_d16(uint8_t code);
  159. extern uint8_t tdc_spi_rd_d8(uint8_t code);
  160. // lcd_drv.c
  161. // seg23:com0~com3
  162. #define LCD_STATUS_BAR1 (0x01000000u)
  163. #define LCD_STATUS_BAR2 (0x02000000u)
  164. #define LCD_STATUS_BAR3 (0x04000000u)
  165. #define LCD_STATUS_BAR4 (0x08000000u)
  166. // seg22:com0~com3
  167. #define LCD_STATUS_LEFT (0x00010000u)
  168. #define LCD_STATUS_INSTANT (0x00020000u)
  169. #define LCD_STATUS_FORWARD (0x00040000u)
  170. #define LCD_STATUS_BACKWARD (0x00080000u)
  171. // seg21:com0~com3
  172. #define LCD_STATUS_KPA (0x00000100u)
  173. #define LCD_STATUS_LOWPWR (0x00000200u)
  174. #define LCD_STATUS_SHUTDOWN (0x00000400u)
  175. #define LCD_STATUS_LADDER (0x00000800u)
  176. // seg20:com0~com3
  177. #define LCD_STATUS_HOUR (0x00000001u)
  178. #define LCD_STATUS_SLASH (0x00000002u)
  179. #define LCD_STATUS_DEGREE (0x00000004u)
  180. #define LCD_STATUS_YUAN (0x00000008u)
  181. #define LCD_STATUS_BAR5 (0x00000010u)
  182. #define LCD_STATUS_CIRCLE (0x00000020u)
  183. #define LCD_STATUS_CUM (0x00000040u)
  184. #define LCD_STATUS_M3 (0x00000080u)
  185. #define LCD_POINT4 (3)
  186. #define LCD_POINT5 (4)
  187. #define LCD_POINT6 (5)
  188. #define LCD_POINT7 (6)
  189. #define LCD_POINT8 (7)
  190. #define LCD_POINT9 (8)
  191. extern uint8_t DispMem_Symbol[5];
  192. extern uint32_t DispMem_Status;
  193. extern void lcd_init(void);
  194. extern void LCD_ClrAll(void);
  195. extern void LCD_ClrStatus(void); // add by HBR 20260604
  196. extern void LCD_ClrDec(void);
  197. extern void LCD_DispDec(uint32_t val, uint8_t pos, uint8_t dl);
  198. extern void LCD_DispDecAllPos(uint32_t val, uint8_t pos, uint8_t dl);
  199. extern void LCD_DispFloat(float val, uint8_t pos, uint8_t dl, uint8_t il);
  200. extern void LCD_DispDouble(double val, uint8_t pos, uint8_t dl, uint8_t il);
  201. extern void LCD_DispStr(char *str, uint8_t pos, uint8_t dl);
  202. extern void LCD_Update(void);
  203. extern void LCD_DispPoint(uint8_t num);
  204. // adc_drv.c
  205. extern volatile float McuTemp;
  206. extern volatile uint16_t McuVcc; // unit mV
  207. extern volatile uint16_t McuVbat; // unit mV
  208. // extern volatile uint16_t McuVTxbat; // unit mV
  209. extern volatile float WaterPressure; // unit MPa
  210. extern void adc_init(void);
  211. extern void adc_get(void);
  212. // eeprom_drv.c
  213. extern void eeprom_init(void);
  214. extern uint8_t EEPROM_WrPacket(uint8_t *Buf, uint16_t DLen);
  215. extern uint8_t EEPROM_RdPacket(uint8_t *Buf, uint16_t DLen);
  216. // mcu_flash_drv.c
  217. typedef struct
  218. {
  219. uint32_t addr;
  220. union U
  221. {
  222. uint32_t word;
  223. uint8_t byte[4];
  224. } u;
  225. uint8_t idx;
  226. } McuFlash_WP_t;
  227. extern void McuFlash_init(void);
  228. extern void McuFlash_WaitBusy(void);
  229. extern void McuFlash_Unlock(void);
  230. extern void McuFlash_Lock(void);
  231. #ifndef BOOTLOADER_ENABLE
  232. extern int8_t McuFlash_ErasePage(uint32_t addr);
  233. extern int8_t McuFlash_WordPP(uint32_t addr, uint32_t data);
  234. #else
  235. // the following functions implemented in bootloader, shared for APP
  236. typedef uint32_t (*upgrade_pkg_crc32_fpt)(const uint8_t *buf, uint32_t size);
  237. typedef void (*McuFlash_ErasePage_fpt)(uint32_t addr);
  238. typedef void (*McuFlash_WordPP_fpt)(uint32_t addr, uint32_t data);
  239. #define upgrade_pkg_crc32(x, y) (*((upgrade_pkg_crc32_fpt)(*(uint32_t *)0xc0u)))((x), (y))
  240. #define McuFlash_ErasePage(x) (*((McuFlash_ErasePage_fpt)(*(uint32_t *)0xc4u)))((x))
  241. #define McuFlash_WordPP(x, y) (*((McuFlash_WordPP_fpt)(*(uint32_t *)0xc8u)))((x), (y))
  242. #endif
  243. extern void McuFlash_EraseSegment(uint32_t start, uint32_t len);
  244. extern void McuFlash_OpenWP(uint32_t addr, McuFlash_WP_t *p);
  245. extern void McuFlash_Buf2WP(uint8_t *buf, uint32_t len, McuFlash_WP_t *p);
  246. extern void McuFlash_CloseWP(McuFlash_WP_t *p);
  247. // button_drv.c
  248. #define BTNKEY_TOUCH_FALL (0x00000010u)
  249. // #define BTNKEY_TOUCH_RISE (0x00000010u)
  250. extern uint32_t BtnKeyHistory;
  251. extern void ButtonInit(void);
  252. extern uint32_t ButtonGetEvents(void);
  253. // debug_uart_drv.c
  254. extern void debug_uart_init(void);
  255. // lpuart0_drv.c
  256. extern void lpuart0_drv_init(uint8_t baud);
  257. extern void lpuart0_tx_str(char *str);
  258. extern void lpuart0_set_rx_itf(uart_rx_itf itf);
  259. // nb_drv.c
  260. #define nb_tx_str lpuart0_tx_str
  261. // NB_EN: PF00(AF0)
  262. #define NB_EN_PIN_FUNC PF00_AF0
  263. #define NB_EN_GPIO_PORT GpioPortF
  264. #define NB_EN_GPIO_BITMASK GpioBitMsk0
  265. extern void nb_power_on(uint8_t baud);
  266. extern void nb_power_off(void);
  267. #define LOW_PWR_THRESHOLD (3200)
  268. // hardware_id_drv.c
  269. extern void HardwareIdInit(void);
  270. extern uint16_t GetHardwareId(void);
  271. // mux_drv.c
  272. void mux_init(void);
  273. void set_mux_ch(uint32_t ch);
  274. uint32_t get_mux_ch(void);
  275. #include "param.h"
  276. // add by yuewei 20260327 start
  277. // 输入滤波:速度 & 温度(越小越平滑)
  278. #define SPDLVL_FILTER_ALPHA 0.2f
  279. #define TEMP_FILTER_ALPHA 0.3f
  280. // 输出流量滤波(最终结果平滑)
  281. #define VOL_FILTER_ALPHA 0.15f
  282. // add by yuewei 20260327 end
  283. // add by yuewei 20260325 用于飞行时间差低通平滑滤波
  284. #define DIFF_TOFF_FILTER_ALPHA 0.5f
  285. // add by yuewei 20260325 用于防止APSR二次修正来回跳变
  286. #define APSR_MAX_STEP 0.01f
  287. // add by yuewei 20260305 start
  288. // #define APP_DEBUG_PRINT
  289. #ifdef APP_DEBUG_PRINT
  290. #define LOG(...) \
  291. do \
  292. { \
  293. rt_enter_critical(); \
  294. printf(__VA_ARGS__); \
  295. rt_exit_critical(); \
  296. } while (0)
  297. #else
  298. #define LOG(...) \
  299. do \
  300. { \
  301. } while (0)
  302. // #define LOG(...) rt_thread_mdelay(2) //do {} while(0)
  303. #endif
  304. // add by yuewei 20260309 to deal hongwai long data
  305. extern uint8_t HONGWAI_LONG_RX_FLAG;
  306. // add by yuewei 20260310 to show lcd all
  307. extern void lcd_show_all(void);
  308. // add by yuewei 20260310 to enter check mode when LcdPage is 'disp_time' and key long press 5 seconds
  309. extern en_lcd_page_t LcdPage;
  310. // add by yuewei 20260310 to enter check mode when LcdPage is 'disp_time' time and key long press 5 seconds
  311. extern void check_enter_check_mode_by_key_press(void);
  312. // add by yuewei 20260310 to exit check mode when LcdPage is 'disp_cumflow' and key long press 5 seconds
  313. extern void check_enter_normal_mode_by_key_press(void);
  314. // add by yuewei 20260318, for lcd display remain time
  315. extern uint16_t ot_count_down;
  316. // add by yuewei 20260319, TDC中断信号量
  317. extern struct rt_semaphore tdc_isr_sem;
  318. // add by yuewei 20260422, RTC中断信号量
  319. extern struct rt_semaphore rtc_isr_sem;
  320. // add by yuewei 20260422, RTC中断函数迁移出中断
  321. extern void rtc_interrupt_deal_tdc(void);
  322. // add by yuewei 20260319, TDC中断函数迁移出中断
  323. extern void tof_isr_convert_tof_to_flow(void);
  324. // add by yuewei 20260416, for lcd display pass
  325. extern void lcd_show_key_trigger_report_pass(void);
  326. // add by yuewei 20260424, for lcd display "ot-Err"
  327. extern uint8_t G_OT_ERROR_FLAG_CNT;
  328. // add by yuewei 20260424, for lcd display ot error
  329. extern void lcd_show_ot_error(void);
  330. // add by yuewei 20260416 to countdown LcdTimer per 1 second
  331. extern void lcd_timer_countdown(void);
  332. // add by yuewei 20260416, short key press toggle value,defalt: 0->display fw cumflow,1->display bw cumflow
  333. extern uint8_t g_lcd_display_check_bw_cum_flow;
  334. extern uint8_t lcd_disp_pass_flag; // wxl20260423 用于显示pass字段
  335. extern void tof_filter_init(uint8_t ch_num); // 20260429
  336. extern uint8_t G_STATIC_OT_SETTING_FLAG; // 20260429 正在设置静态OT,不进行飞行时间差滤波
  337. extern void set_rtc_interrupt_time(float time); // add by yuewei 20260519,设置RTC:多少秒钟进一次中断,time:0.5s, 1.0s, 1.5s, 2.0s...
  338. extern float get_rtc_interrupt_time(void); // add by yuewei 20260519,从 RTC->CR0 读取 PRDX 值,返回中断间隔秒数
  339. extern void tdc_turn_on_off_high_clk(uint8_t state); //add by hbr20260824,关闭ms1031高速晶振
  340. // add by wuxiaolin 20260313 start
  341. // param.h 参数和记录读写相关接口
  342. extern uint8_t get_param_firmware_ver(void); // 获取当前版本号
  343. // extern int8_t GetChNum(void);//获取超声波通道数
  344. extern int8_t set_hardware_para(HardWareParaDef *HardWarePara); // 设置硬件参数
  345. extern int8_t get_hardware_para(HardWareParaDef *HardWarePara); // 读取硬件参数
  346. extern int8_t set_patch_info(PATCH_INFO_DEF *patch_info); // 设置表端开始升级信息,收到升级指令后调用
  347. extern uint8_t write_diff_patch_to_flash(DIFF_PACKET_DEF *Packet); // 写差分包,收到差分包后调用
  348. extern int8_t set_server_ip_port_para(SERVER_IP_PORT_DEF *server_ip_para); // 设置服务器ip和端口号
  349. extern int8_t get_server_ip_port_para(SERVER_IP_PORT_DEF *server_ip_para); // 读取服务ip和端口号
  350. extern int8_t set_regular_report_para(REGULAR_REPORT_DEF *regular_report_para); // 设置定时上报周期和时间间隔
  351. extern int8_t get_regular_report_para(REGULAR_REPORT_DEF *regular_report_para); // 读取定时上报周期和时间间隔
  352. extern int8_t set_dma_regular_report_para(DMA_REGULAR_REPORT_DEF *dma_report_para); // 设置dma上报时间参数
  353. extern int8_t get_dma_regular_report_para(DMA_REGULAR_REPORT_DEF *dma_report_para); // 读取dma定时上报时间参数
  354. extern int8_t set_flow_alarm_para(FLOW_ALARM_PARA_DEF *flow_alarm_para); // 设置流量告警参数
  355. extern int8_t get_flow_alarm_para(FLOW_ALARM_PARA_DEF *flow_alarm_para); // 读取流量告警参数
  356. extern int8_t set_press_alarm_para(PRESS_ALARM_PARA_DEF *press_alarm_para); // 设置压力告警参数
  357. extern int8_t get_press_alarm_para(PRESS_ALARM_PARA_DEF *press_alarm_para); // 获取压力告警参数
  358. extern int8_t set_temp_alarm_para(TEMP_ALARM_PARA_DEF *temp_alarm_para); // 设施温度告警参数
  359. extern int8_t get_temp_alarm_para(TEMP_ALARM_PARA_DEF *temp_alarm_para); // 读取温度告警参数
  360. extern int8_t set_settlement_day_para(SETTLEMENT_DAY_DEF *settlement_day_para); // 设置表端结算日参数
  361. extern int8_t get_settlement_day_para(SETTLEMENT_DAY_DEF *settlement_day_para); // 读取表端结算日参数
  362. extern int8_t set_meter_bottom_data(METER_BOTTOM_DEF *bottom_data); // 设置表底读数
  363. extern int8_t get_18month_record_data(uint8_t *data); // 读取月结数据
  364. extern int8_t get_30day_record_data(uint8_t *data); // 读取日结数据
  365. extern int8_t get_hour_record_data(uint8_t year, uint8_t month, uint8_t day, uint8_t *data); // 读取时结数据
  366. extern int8_t get_5min_record_data(GET_5MIN_REOCORD_DEF *get_5min_record_data, uint16_t numb, uint8_t *data); // 读取5分钟密集数据
  367. extern int8_t get_log_record(uint8_t start, uint8_t num, uint8_t *data); // 读取日志数据 暂未实现
  368. extern int8_t set_channel_numb(uint8_t *numb); // 设置声道数
  369. extern int8_t get_channel_numb(uint8_t *numb); // 设置声道数
  370. extern int8_t get_device_addr(uint8_t *data); // 获取设备地址
  371. extern int8_t set_device_addr(uint8_t *data); // 设置表地址
  372. extern int8_t set_flow_para(FLOW_PARA_DEF *flow_para); // 设置流量参数
  373. extern int8_t get_flow_para(FLOW_PARA_DEF *flow_para); // 读取流量参数
  374. extern int8_t set_deltaTC_flow_para(DELTA_TC_FLOW_PARA_DEF *deltaTC_para); // 设置德尔塔TC流量参数
  375. extern int8_t get_deltaTC_flow_para(DELTA_TC_FLOW_PARA_DEF *deltaTC_para); // 读取德尔塔TC流量参数
  376. extern int8_t set_diameter_and_temp_compensation(DIAMETER_AND_TEMP_COMPENSATION_DEF *data); // 设置口径和温度补偿系数
  377. extern int8_t get_diameter_and_temp_compensation(DIAMETER_AND_TEMP_COMPENSATION_DEF *data); // 读取口径和温度补偿系数
  378. extern int8_t set_auto_match_level_para(AUTO_MATCH_LEVEL_PARA_DEF *data); // 设置自动匹配电平参数
  379. extern int8_t get_auto_match_level_para(AUTO_MATCH_LEVEL_PARA_DEF *data); // 获取自动匹配电平参数
  380. extern int8_t set_nbqr_para(NBQR_PARA_DEF *nbqr_para); // 设置nbqr参数
  381. extern int8_t get_nbqr_para(NBQR_PARA_DEF *nbqr_para); // 读取nbqr参数
  382. extern uint8_t G_TDC_DEEP_SLEEP;
  383. // add by wuxiaolin 20260313 end
  384. // extern uint8_t NB_RUN_UPDATE_FLAG;//wxl 2026-4-8 nb下载代码时,禁止长时间占用中断
  385. #ifdef DEBUG_LOW_POWER
  386. extern uint32_t get_time[32];
  387. extern uint8_t gtcnt;
  388. extern void get_internal_time(void);
  389. extern uint16_t tms;
  390. #define SYS_MS_CNT rt_tick_get()
  391. #endif
  392. #ifdef __cplusplus
  393. }
  394. #endif
  395. #endif