Hallo Leute, mein Beitrag hier ist wohl während dem Umbau der Site ins Nirvana verloren gegangen...

Hier nochmal:
Ich will einen möglichst einfachen (und daher leicht zu verstehenden) Interrupt programmieren können.

Mein Ansatz war der:

Code:
ISR (INT0_vect) 

 { 
    
   i++; 
    
   } 



main () 
{ 

     int i=0;              // Zählervariable 
     sei();                // Interrupts global einschalten 
     GIMSK=(1<<6) // bzw. (1<<INT0) ??  Enable INT0 
     MCUCR=MCUCR|(1<<ISC01)|(1<<ISC001) // rising edge -> wenn 
                                                                      //PORTBx 5v wird 

              while(true) 
                     { 
                        if (i==100) 
                                { 
                                      LED EIN, WARTREN UND LED AUS 
                                      i=0; 
                                             } 
                    } 
             }
Dann kam die Antwort


Du kannst im Interrupt nicht die lokale Variable einer Funktion verändern. i muss global sein (und das "volatile" nicht vergessen).
Worauf meine Vermutung war, dass ich also unter # define F_CPU und #include<...>
noch int voltaile i=0 hinzufügen muss. Soweit korrekt??


Mfg