根因: 设置不同灵敏度感应高度无区别 1. unpack_pkg_set_mcjq_param 未同步 loop_SensLevel → 改灵敏度需重启才生效 2. 9级制映射 sensitvity & 0x03 折叠 (默认7→3, 3→3, 8→0) 3. (测试陷阱) 金属块过大信号饱和, 建议小金属块测临界高度 修复: - 提取 sens_level_from_config() 映射函数, 4级制 0~3 一一对应 (9级制后改) - unpack_pkg_set_mcjq_param 补 loop_SensLevel 同步 (运行中立即生效) - para_store_init 上电路径改用同一函数 - 协议 V1.08: Sensitivity 0~9级 → 4级制 0~3 (默认2) - tests/test_sens_mapping.c gcc 隔离单测 PASS (0~3无折叠/兼容旧默认7→3)
16 lines
513 B
C
16 lines
513 B
C
/* mock flash.h — gcc 隔离测试用 (storage.c 依赖的 flash API + 宏) */
|
|
#ifndef MOCK_FLASH_H
|
|
#define MOCK_FLASH_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#define DLD_BUFEER_SIZE 100
|
|
#define DLD_FLASH_ADDRESS_START (0x08000000 + 1024 * 63 + 512)
|
|
#define DLD_FLASH_MAX_SIZE (0x08000000 + 1024 * 64)
|
|
#define MAX_Store_Size DLD_BUFEER_SIZE
|
|
|
|
void flash_write(uint32_t addr, uint16_t *buf, uint16_t len);
|
|
void flash_read(uint32_t addr, uint16_t *buf, uint16_t len);
|
|
|
|
#endif
|