节能二队流程图
2020-10-31 16:28:09 0 举报
智能车培训作业
作者其他创作
大纲/内容
OLED初始化
main函数开始(以下省略了OLED具体显示内容)
出环判断
N
判断拨码开关MARK_1MARK_2MARK_3状态
OLED清屏
运行
初始化ADC0_SE2(用于单组电压检测)
hd_way[2]=1;
MARK_6 管脚状态 == 1?
上拉管脚MARK_1MARK_2MARK_3MARK_4MARK_5MARK_6MARK_7MARK_8
初始化PIT0定时器,定时5ms
电容总电压控制速度
初始化 FTM2_CH2FTM2_CH3的边沿PWM 模式,设置频率和占空比
十字判断
停车
判环自动挡
单组电压检测
jdq_block = 0;
OLED显示数据
开启定时器
MARK_1 管脚状态 == 1?
MARK_5 管脚状态 == 1?
舵机
Y
继电器
闭合继电器
判环挡位判断
设置KBI1_IRQn优先级为1
初始化拨码开关管脚MARK_1MARK_2MARK_3MARK_4MARK_5MARK_6MARK_7MARK_8
出环标志位超时清零
初始化H7管脚为输出模式,低电平(用于继电器)
环岛执行___归一部分
偏转赋值
判环手动挡
总定义
收起支架
关翻盖舵机
jdq_block = 1;bbtime = 200;
电压档位判断
更新偏差
舵机中位值和转向值加和
中断服务函数KBI1_IRQHandler
速度调至速度2模式
等待定时器产生中断信号
环岛判断(手动挡)
speed_now = SD*2; SD = 0;
H5管脚变低电平
VOLTAGE = 120
hd_way[0]=1;
等待上升沿信号触发中断
蜂鸣器
第一圈蜂鸣
总电压检测
中断服务函数PIT_CH0_IRQHandler
电机
初始化H5管脚为输出模式,低电平
dy_all >= VOLTAGE?
环岛判断(自动挡)
H7管脚变低电平
蓝牙初始化
电感归一
清除中断标志位
初始化KBI1_P24,上升沿触发
赋值给舵机
获取电感
舵机初始化
电感滤波
获取dy_all
初始化H3管脚为输入模式;上拉H3;(用于干簧管)
电机初始化
计时
初始化ADC0_SE3(用于总电压检测)
bbtime>0?
设置PIT_CH0_IRQn优先级为0
充电循环检测
hd_way[1]=1;
计算偏差
位置式动态PD
使能KBI1_IRQn
滤波
SD++;
MARK_8 管脚状态 == 1?
拨码开关初始化
MARK_2 管脚状态 == 1?
初始化ADC通道DG0(ADC0_SE13)DG1(ADC0_SE15)DG2 (ADC0_SE9)DG3 (ADC0_SE8)DG4 (ADC0_SE14)DG5 (ADC0_SE12)DG6 (ADC0_SE10)DG7(ADC0_SE11)
打开速度闭环中断
获取电感初始化
蜂鸣器初始化
dy_all<=VOLTAGE 或 dy_biaozhi<5?
更新偏转最大值
bbtime--
限幅滤波
电感自动标定
获取电感值
dy<22 && jdq_block == 1
dy_biaozhi ++
MARK_3 管脚状态 == 1?
第二圈停车
环岛执行___偏差部分
是否有上升沿信号触发中断
继电器初始化
H7管脚变高电平
定时器是否溢出产生中断
获取时钟频率
VOLTAGE = 115
限幅 servo_max为偏转最大值
dy<70 && jdq_block == 0?
MARK_7 管脚状态 == 1?
速度调至速度1模式
H5管脚变高电平
使能PIT_CH0_IRQn
MARK_4 管脚状态 == 1?
0 条评论
下一页