-
-
Moderator
Robotik Visionär
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
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen