zoukankan      html  css  js  c++  java
  • 圆点博士小四轴主程序状态机结构

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

     

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

    状态机的基本结构是:

    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;
       }
      }

    }

     


     




  • 相关阅读:
    ISTQB测试人员认证 初级(基础级)大纲
    5.2 测试计划和估算
    4. 测试设计技术
    V模型与测试级别
    1.3 Seven Testing Principles
    什么是DNS?
    总结SQL查询慢的50个原因
    CPU分几核几核的是什么意思?
    监控查询慢sql
    关于并发用户数的思考-通过PV量换算并发
  • 原文地址:https://www.cnblogs.com/jins-note/p/9512733.html
Copyright © 2011-2022 走看看