void ExceptionalCase(/*car_position_enum Position*/) { switch (ExceptionalCaseFlag) { case 1://后车不需要出库,所以这里是出发时后车处理的程序 mt9v03x_init(); while(SendTime--) { system_delay_ms(50); Send_Data(6,6,6); } /*摄像头检查*/ int i = 15; while(i) { if(mt9v03x_finish_flag) { mt9v03x_finish_flag = 0; i--; test(); tft180_show_gray_image(0, 0, My_image[0], MT9V03X_W/2, MT9V03X_H/2, MT9V03X_W / 2, MT9V03X_H / 2, 1); tft180_show_int(60, 60, i, 3); tft180_show_int(32, 76, Err, 3); } } state = DEFAULT; ExceptionalCaseFlag = 0;//将小车状态设为在赛道上起步 SetSpeed = 800; RealSetSpeed = SetSpeed; pit_enable (TIM7_PIT);//开启定时器中断 break;
时间: 2024-02-10 16:27:39 浏览: 67
DNS-ENUM.rar_ENUM/DNS_dns _enum 域名解析
这段代码是一个函数`ExceptionalCase`的实现。根据代码逻辑,当`ExceptionalCaseFlag`的值为1时,执行后车出发时的处理程序。具体的处理过程如下:
1. 调用`mt9v03x_init()`函数进行摄像头的初始化。
2. 使用`while(SendTime--)`循环发送数据,在每次循环中延迟50毫秒并调用`Send_Data`函数发送数据。
3. 进行摄像头检查,使用`while(i)`循环进行检查。
4. 如果`mt9v03x_finish_flag`为真,说明摄像头检查完成,将`mt9v03x_finish_flag`置为0,执行`test()`函数进行测试操作。
5. 使用`tft180_show_gray_image`函数在显示屏上显示灰度图像。
6. 使用`tft180_show_int`函数在显示屏上显示数字。
7. 执行完以上操作后,将`state`设为默认值,将`ExceptionalCaseFlag`置为0,将小车状态设为在赛道上起步。
8. 设置速度相关参数。
9. 开启定时器中断。
请注意,这段代码中有一些变量和函数是未定义的,例如`ExceptionalCaseFlag`、`Send_Data`、`test()`等。你需要根据实际情况进行定义和实现。
阅读全文