嵌入式之家

 找回密码
 现在注册

QQ登录

只需一步,快速开始

搜索
热搜: ARM cortex
查看: 2283|回复: 0

APM遥控器输入处理流程

[复制链接]
  • TA的每日心情
    开心
    2020-6-18 22:00
  • 签到天数: 1 天

    [LV.1]初来乍到

    101

    主题

    192

    帖子

    1645

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1645
    发表于 2020-9-27 14:53:09 | 显示全部楼层 |阅读模式
    数据更新:


    libraries/AP_HAL_PX4/HAL_PX4_Class.cpp  --->  void HAL_PX4::run(int argc, char * const argv[], Callbacks* callbacks) const
    libraries/AP_HAL_PX4/HAL_PX4_Class.cpp  --->  static int main_loop(int argc, char **argv)
                                                                               {
                                                                                           hal.scheduler->init();
                                                                               }
    libraries/AP_HAL_PX4/Scheduler.cpp           --->  void PX4Scheduler::init()
                                                                               {
                                                                                           pthread_create(&_timer_thread_ctx, &thread_attr, &PX4Scheduler::_timer_thread, this);
                                                                               }

    libraries/AP_HAL_PX4/Scheduler.cpp          --->   void *PX4Scheduler::_timer_thread(void *arg)
                                                                               {
                                                                                           ((PX4RCInput *)hal.rcin)->_timer_tick();
                                                                               }

    libraries/AP_HAL_PX4/RCInput.cpp            --->    void PX4RCInput::_timer_tick(void)      
                                                                               {
                                                                                          orb_copy(ORB_ID(input_rc), _rc_sub, &_rcin);
                                                                               }                                          


    数据使用:

    ArduCopter/ArduCopter.cpp                      --->   void Copter::rc_loop()
                                                                               {
                                                                                          read_radio();
                                                                               }  

    ArduCopter/ArduCopter.cpp                      --->   void Copter::read_radio()
                                                                               {
                                                                                         if (hal.rcin->new_input())

                                                                                         {
                                                                                                  ...

                                                                                         }  

                                                                               }  
    libraries/AP_HAL_PX4/RCInput.cpp            --->    bool PX4RCInput::new_input()   
                                                                               {
                                                                                         bool valid = _rcin.timestamp_last_signal != _last_read;
                                                                                         return valid;
                                                                               }      

    ArduCopter/ArduCopter.cpp                      --->   void Copter::read_radio()
                                                                               {
                                                                                         if (hal.rcin->new_input())

                                                                                         {
                                                                                                 RC_Channels::set_pwm_all();
                                                                                                 radio_passthrough_to_motors();

                                                                                         }  

                                                                               }  






    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 现在注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|嵌入式之家 ( 京ICP备14038168号-1 )

    GMT+8, 2025-5-3 14:27 , Processed in 0.020674 second(s), 25 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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