PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Int main(void)



Tom95
09.06.2012, 16:44
Hallo,
was bedeutet eigentlich dieses Int main(void), welches man in jedes Programm für den Asuro schreibt?
Gruß
Tom

Kampi
09.06.2012, 16:52
Hi,

das int main(void) kennzeichnet das eigentliche Programm welches im Mikrocontroller abgearbeitet wird. Es beginnt bei der ersten Zeile der Schleife int main(void) und läuft dann durch bis zum while (1). Das while(1) ist dann die eigentliche Schleife für das Programm. In dem Teil int main(void) kommen einmalige Sachen (z.B. UART initialisieren, I²C initialisieren, usw.).

robo_tom_24
09.06.2012, 17:00
Das ist wie gesagt das eigentliche Programm welches vom µC aufgerufen wird...
Es gibt dann noch Unterprogramme, nur das ist dann eine andere Geschichte ;)

Lies dir mal ein paar Tutorials durch - und nicht vergessen, google ist dein Freund ;)

radbruch
09.06.2012, 17:31
Hallo

Man sollte das eher aus der Entwicklung von C betrachten als das C-Programm von einem übergeordneten Betriebssystem aufgerufen wurde und man auch Parameter an das Programm übergeben konnte. Um einen gemeinsamen Einstiegspunkt zu erhalten einigete man sich auf den Namen main() der Hauptfunktion.

Das void bedeutet, die Funktion erwartet beim Aufruf keinen Parameter. Weil die Microkontroller mit einem Reset starten und die Funktion main() nicht als Unterprogamm aufgerufen wird kann man eh keine Parameter übergeben.

Das int wiederum bedeutet, dass es sich um eine Funktion handelt die einen Integerwert als Rückgabewert an das aufrufende Programm zurückgibt. Damit kann die Funktion Fehlermelungen oder Stati zurückmelden. Da es bei Microkontrollern aber kein aufrufendes Programm gibt, braucht man auch nichts zurück geben. Im Gegenteil, die Funktion main() darf nie beendet werden! Trotzdem muss ein return()-Befehl vorhanden sein, das wird durch das int zwingend vorgegeben.

Gruß

mic

shedepe
09.06.2012, 20:33
http://www.iu.hio.no/~mark/CTutorial/CTutorial.html
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
http://www.rn-wissen.de/index.php/C-Tutorial
http://www.rn-wissen.de/index.php/Avr-gcc