• 圆点博士小四轴主程序状态机结构


    圆点博士小四轴主程序状态机结构

     

    圆点博士小四轴主程序采用状态机结构的方式编写。

    状态机的基本结构是:

    1。有一个驱动时钟

    2。在各个状态中设置下一个需要运行的状态。

     

    下面我们结合源代码进行分析:

    system_timer_1ms_event是一个每1ms触发一次的事件。在定时器的控制下,每1ms,事件标志system_timer_1ms_event北置位到1。

    while(1)是一个死循环,代码不断检测1ms事件到达标志。

     

    圆点博士小四轴状态机主要由下列三个事件组成:

     IDLE 为开机后的初始化状态,主要用于检查陀螺仪数据的稳定性。

    UPDATE_COMMAND 为接收遥控器指令以及读取陀螺仪数据的状态

    UPDATE_MOTOR 为更新电机转速的状态

    RESET_MOTOR 为关停电机的状态。

     

    圆点博士小四轴主程序状态机结构

     

     

    while(1)
     {
      if(system_timer_1ms_event)   //圆点博士:1MS事件触发
      
       system_timer_1ms_event=0;   //圆点博士:清除事件
       system_timer_counter++;       //圆点博士:系统计数器
       //
       switch (system_timer_state)
       {
        case IDLE:
         system_idle_counter++;
         BS004_Get_MPU6050_Data();
         //
         if(system_idle_counter>5) system_timer_state=UPDATE_COMMAND;
         break;

        case UPDATE_COMMAND:
         BS004_Get_MPU6050_Data();
         system_status=BS004_COM1_Task_Process();
         //
         if(system_status) system_timer_state=UPDATE_MOTOR;
         else system_timer_state=RESET_MOTOR;
         break;
        
        case UPDATE_MOTOR:
         BS004_Get_MPU6050_Data();
         BS004_Motor_Control();
         //
         system_timer_state=UPDATE_COMMAND;
         break;

        case RESET_MOTOR:
         BS004_Get_MPU6050_Data();
         BS004_Motor_Reset();
         //
         system_timer_state=UPDATE_COMMAND;
         break;
        
        default:
         break;
       }
      }

    }

     


     




  • 相关阅读:
    CDN实现原理
    openstack测试集群扩容配置
    ELK5.2.2自动化部署脚本
    Python多线程
    Python反射
    OpenStack快照分析:(三)从磁盘启动云主机离线(在线)快照分析
    OpenStack快照分析:(二)从镜像启动的云主机离在线快照分析
    OpenStack快照分析:(一)从镜像启动的云主机离线快照分析
    Python元编程
    Python源码阅读:对象
  • 原文地址:https://www.cnblogs.com/jins-note/p/9512733.html
Copyright © 2020-2023  润新知