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!
		}
	}
}
Beispiel #2
0
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;
    }
}
Beispiel #3
0
int main() {
    demo_1();
}