Hallo

Die Funktion main() muss immer mit einer Endlosschleife enden! Sie wird eigentlich wie jede andere Funktion aufgerufen, allerdings ist nirgends definiert, wohin das Programm springen soll, wenn main() beendet ist.

Ausserdem sollte sie die Form

int main(void)
{
// hier kommt das eigentliche Programm rein
while(1);
return(1);
}

haben, sonst motzt der Compiler. int für den Rückgabewert, deshalb steht da auch immer return(1), und void für kein Parameter wird benötigt.

Ihr seid immer soooo schnell. asuro.h und Init(); benötigt man nicht, wenn man solche Programm schreibt, es genügt

#include <avr/io.h>
#include <avr/interrupt.h>

für die #defines und die Interrupts. Hab ich doch selbst erst gestern kapiert und erklärt:

https://www.roboternetz.de/phpBB2/vi...=295604#295604

Ohne asuro.h gibt's natürlich auch kein Msleep(), deshalb muss man mit Verzögerungsschleifen arbeiten:

unsigned int i,j;

for (i=0; i < 20; i++) { for (j=0; j < 65535; j++); }

20 in der i-Schleife sind ungefähr 'ne Sekunde Verzögerung.

Gruss

mic