void _Pragma("entrypoint") test_ppm_task(void) { if( ppm_valid ) { ppm_valid = FALSE; ppm_cpt++; radio_ok = TRUE; radio_really_lost = FALSE; time_since_last_ppm = 0; last_radio_from_ppm(); if (last_radio_contains_avg_channels) { mode = MODE_OF_PPRZ(last_radio[RADIO_MODE]); } if (mode == MODE_MANUAL) { servo_set(last_radio); } } else if (mode == MODE_MANUAL && radio_really_lost) { mode = MODE_AUTO; } if (time_since_last_ppm >= STALLED_TIME) { radio_ok = FALSE; } if (time_since_last_ppm >= REALLY_STALLED_TIME) { radio_really_lost = TRUE; } }
/* #ifndef PAPABENCH_SINGLE int main( void ) { fbw_init(); while( 1 ) { fbw_schedule(); if(timer_periodic()) { _1Hz++; _20Hz++; if (_1Hz >= 60) { _1Hz = 0; } if (_20Hz >= 3) { _20Hz = 0; } } } return 0; } #endif */ void test_ppm_task(void) { //vPrintString("S_1 test_ppm_task start! \n\r"); //SunnyBeike // modified by wanbo //if( ppm_valid ) { ppm_valid = FALSE; ppm_cpt++; radio_ok = TRUE; radio_really_lost = FALSE; time_since_last_ppm = 0; last_radio_from_ppm(); //if (last_radio_contains_avg_channels) { mode = MODE_OF_PPRZ(last_radio[RADIO_MODE]); } if (mode == MODE_MANUAL) { servo_set(last_radio); } } //else if (mode == MODE_MANUAL && radio_really_lost) { mode = MODE_AUTO; } //if (time_since_last_ppm >= STALLED_TIME) { radio_ok = FALSE; } //if (time_since_last_ppm >= REALLY_STALLED_TIME) { radio_really_lost = TRUE; } //vPrintString("S_1 test_ppm_task end! \n\r"); //SunnyBeike }