Mein ISR code sieht so aus :
In main gibt dan die Aenderung von mleft_dist wieviel tics und in welche Richtung da passiert sein. Der zweite variable mleft_counter wird jeden 100 mS ausgewertet und gibt dan die Geschwindigkeit for. Die variabel e_compass ist dan das unterschied in Abstand zwischen Rechter und Linker Rad.Code:/** * External Interrupt 0 ISR * (ENCL) * */ ISR (INT0_vect) { if(PINC&KMI_L){ mleft_dist++; mleft_counter++; //writeString_P("ISR0");//controle interrupt e_compass++; delta_distance++;} //richting robby !! else { mleft_dist--; mleft_counter--; e_compass--; delta_distance--;} //delta_distance voor odometrie !! }







Zitieren
Lesezeichen