int main(void) { int msg_counter = 0; int servo_counter = 0; //char servo_flag = 0; Podesi_Oscilator(); //podesavanje oscilatora Podesi_Parametre_Robota(); //podesavanje broja impulsa u krugu Podesi_PID_Pojacanja(); //podesavanje pojacanja PID regulatora PodesiADC(); //podesavanje AD konvertora Podesi_Tajmere(); //podesavanje tajmera Podesi_QDEC(); //podesavanje kvadraturnih dekodera Podesi_PWM(); //podesavanje PWM signala za motore i servoe Podesi_Interapt(); //podesavanje interapt prioriteta Podesi_Pinove(); //podesavanje I/O pinova Podesi_USART_Komunikaciju(); //podesavanje komunikacije //inicijalizuj_bluetooth(); //inicijalizuj_servo_tajmer_20ms(); //pomeri_servo_1(0); //sendChar('k'); _delay_ms(3000); //cekanje da se stabilizuje sistem nuliraj_poziciju_robota(); //idi_pravo(500,0,0); //CheckInputMotorControl(); //zadaj_X_Y_teta(500,0,0,1); while(1) { demo_1(); //Racunanje trenutne pozicije if (Rac_tren_poz_sample_counter >= 3){ //9ms 3 Rac_tren_poz_sample_counter = 0; Racunanje_trenutne_pozicije(); } //Korekcija pravca i distance prema cilju if(Pracenje_Pravca_sample_counter >= 30){ //90ms 30 msg_counter++; servo_counter++; Pracenje_Pravca_sample_counter = 0; Pracenje_pravca(); } //PID regulacija if(PID_pozicioni_sample_counter >= 3){ //9ms 3 PID_pozicioni_sample_counter = 0; PID_ugaoni(); PID_pravolinijski(); //PID_brzinski se poziva direktno u interaptu sistemskog tajmera TCE1! } } }
static void parser_system(int index, char *argv[]) { int tmp0 = 0, tmp1 = 0; switch(index) { case 0: //'info' _USE_PRINTF("[Info]\n"); flexsea_console_print_info(); break; case 1: //'stream' tmp0 = atoi(argv[2]); _USE_PRINTF("[Stream #%i]\n", tmp0); flexsea_console_stream(tmp0); break; case 2: //'log' tmp0 = atoi(argv[2]); _USE_PRINTF("[Log #%i]\n", tmp0); flexsea_console_log(tmp0); break; case 3: //'demo' tmp0 = atoi(argv[2]); _USE_PRINTF("[Demo #%i]\n", tmp0); //Prepare and send data: demo_1(tmp0); break; case 4: //'test' tmp0 = atoi(argv[2]); _USE_PRINTF("[Test Code #%i]\n", tmp0); //Prepare and send data: test_code(); break; case 5: //'user' tmp0 = atoi(argv[2]); tmp1 = atoi(argv[3]); _USE_PRINTF("[User File %i, function %i]\n", tmp0, tmp1); user(tmp0, tmp1); break; default: break; } }
int main() { demo_1(); }