Mein ISR code sieht so aus :
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 !!	
	
}
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.