ArduPilot tasks

Como su predecesor (ardupilot), BeaglePilot utiliza la siguiente estructura para programar tareas en el piloto automático (el siguiente código se puede encontrar en ArduCopter/ArduCopter.pde, ArduPlane/ArduPlane.pde y APMRover2/APMRover2.pde). Esto se hace de esta manera para que el sistema operativo que ejectura lleve a cabo estas latencias.

static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = {
...
    { gcs_send_heartbeat, 100, 150 },
    { update_notify, 2, 100 },
    { one_hz_loop, 100, 420 },
    { gcs_check_input, 2, 550 },
    { gcs_send_heartbeat, 100, 150,
    { gcs_send_deferred, 2, 720 },
    { gcs_data_stream_send, 2, 950 },
...
}
  • El primer parámetro es el nombre de la función
  • El segundo es el tiempo que debería tardar en unidades de 10ms (por ejemplo: 2 significa 20ms que produce 50Hz, por lo tanto, esta función ejecuta 50 veces por segundo).
  • El tercer parámetro es el tiempo máximo más allá del cual la función no debe ejecutar.

results matching ""

    No results matching ""