arduino平衡小车—(六)程序-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4352|回复: 1

arduino平衡小车—(六)程序

[复制链接]
发表于 2017-11-8 13:33 | 显示全部楼层 |阅读模式
(1) 时序总算法  
    void SysTick_Handler(void) //5ms定时器
    {  
        BST_u8MainEventCount++;   //总循环计数值
        BST_u8trig++;
        BST_u8SpeedControlCount++;  //小车速度控制调用计数值GetMotorPulse();//脉冲计算函数BST_u8SpeedControlPeriod++;
        BST_u8DirectionControlPeriod++;   //转向平滑输出计算比例值
        BST_u8DirectionControlCount++;
        AngleControl();  //角度PD控制PWNM输出
        MotorOutput();  //小车总PWM输出  
        if(BST_u8trig>=2)
        {
            UltrasonicWave_StartMeasure();   //调用超声波发送程序 给Trig脚 <10us 高电平chaoshengbo();       //计算超声波测距距离
            BST_u8trig=0;
        }
        if(BST_u8SpeedControlCount>=8)       //当计数值8时,即总系统运行40ms时候(每10个角度PWM输出中融入1个速度PWM输出,这样能保持速度PID输出不干扰角度PID输出,从而影响小车平衡)
        {
             SpeedControl();                     //车模速度控制函数   每40ms调用一次
             BST_u8SpeedControlCount=0;  //小车速度控制调用计数值清零
             BST_u8SpeedControlPeriod=0;  //平滑输出比例值清零
         }   
    }









发表于 2021-5-6 23:05 | 显示全部楼层
收藏了感谢楼主,慢慢研究
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 01:51 , Processed in 0.068001 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表