#include "app_config.h" #include "app_dependence.h" #include "interface.h" #include "app_frm_monitor.h" #include "app_frm_signal.h" #include "app_frm_timer.h" #include "sdrv_vic.h" #include "app_ultrasonic.h" // 定时器结构体 Timer ultrasonic_timer; Timer ultrasonic_timer1; uint16_t fornt_distance = 0;//mm // 定时器信号处理函数 void ultrasonicTimer1Process(void *signal_id) { (void)signal_id; // 标记变量为已使用,避免编译器警告 printf("fornt distance = %d\n",fornt_distance); timerStart(&ultrasonic_timer1, 1000,1); } // 定时器信号处理函数 void ultrasonicTimerProcess(void *signal_id) { (void)signal_id; // 标记变量为已使用,避免编译器警告 un_ultrasonic_output1.bit_data.node = ULTRASONIC_FRONT_NODE; un_ultrasonic_output1.bit_data.function_code = ULTRASONIC_READ; un_ultrasonic_output1.bit_data.register_address = REALTIME_DISTANCE_REG; un_ultrasonic_output1.bit_data.data = 0x100; publishMessage(&un_ultrasonic_output1, 1); timerStart(&ultrasonic_timer, 200,1); } void ultrasonicInput(void *signal_id) { if(signal_id == &un_ultrasonic_input1) { fornt_distance = SWAP_ENDIAN_16(un_ultrasonic_input1.bit_data.data);//高低字节交换 } } // APP模块的初始化 void ultrasonicAppInit(void) { // 初始化定时器 timerInit(&ultrasonic_timer); timerInit(&ultrasonic_timer1); // 订阅定时器信号 subscribe(&ultrasonic_timer, ultrasonicTimerProcess); subscribe(&ultrasonic_timer1, ultrasonicTimer1Process); subscribe(&un_ultrasonic_input1, ultrasonicInput); printf("ultrasonicAPP: initial OK %d\n",getCurrentTime()); timerStart(&ultrasonic_timer, 200,1); timerStart(&ultrasonic_timer1, 1000,1); }