Nochmal hallo,
Ich füchte mal, da wird noch ein weiterer Gedankenfehler sein
LotadaC hat ja schon ein wenig geschrieben. Ich schreib noch was dazu.
Wenn du vorher nur auf PCs programmiert hast ... Vergiß das meißte Du mußt erstmal ein wenig umlernen.
Wenn du ein Programm für einen Mikrocontroller schreibst, dann schreibst du damit quasi auch ein BIOS, Betriebssystem, Userinterface, ... , ja und auch ein wenig deine Applikation
Im PC ist dein Programm ins Betriebssystem eingebettet und wird da gestartet und am Ende deines Programms steht dann wieder das Betriebssystem.
Beim Atmel läuft dein gesamtes programmiertes Zeugs in einer Endlosschleife. Wenn nicht, dann schmiert das alles ab. Dein BIOS/Betriebssystem/Programm wird gestartet wenn du den Strom anstellst und dann läuft es und läuft und läuft und ... Es hat kein Ende. Auf dem Controller ist nichts vorhanden was dein Programm jede µs einmal ausführt oder startet oder was auch immer.
Soviel erstmal um eventuell vorhandene Unklarheiten zu beseitigen.
Gruß
Dino
@LotadaC: Wow, danke für deine Antwort, ist ja richtig viel geworden
Nochmal zu meiner Frage mit dem Delay und den Tastern. Mein ATmega8 läuft ja jetzt mit den Werkseinstellungen, d.h. mit dem internen Takt von 1MHz. D.h. die Abarbeitung des Programms geschieht einmal pro us (stimmt das so?). Da ich aber meinen Taster nicht so schnell drücken kann, d.h. er z.B. 100ms betätigt ist, arbeitet sich das Programm innerhalb dieser Zeit 1000mal ab. Um das zu vermeiden, habe ich das Delay eingebaut, damit ich immer nur einen Zustand weiterschalte und nicht mit einmal drücken alle Zustände durchlaufe.
Die Frage ist, wird das Programmtechnisch wirklich so gemacht? oder gibt es da andere Methoden, schließlich ist der MC, wie LotadaC das schon ein paar Beiträgen früher geschrieben hat, für diese Zeit "lahm" gelegt.
Ich füchte mal, da wird noch ein weiterer Gedankenfehler sein
LotadaC hat ja schon ein wenig geschrieben. Ich schreib noch was dazu.
Wenn du vorher nur auf PCs programmiert hast ... Vergiß das meißte Du mußt erstmal ein wenig umlernen.
Wenn du ein Programm für einen Mikrocontroller schreibst, dann schreibst du damit quasi auch ein BIOS, Betriebssystem, Userinterface, ... , ja und auch ein wenig deine Applikation
Im PC ist dein Programm ins Betriebssystem eingebettet und wird da gestartet und am Ende deines Programms steht dann wieder das Betriebssystem.
Beim Atmel läuft dein gesamtes programmiertes Zeugs in einer Endlosschleife. Wenn nicht, dann schmiert das alles ab. Dein BIOS/Betriebssystem/Programm wird gestartet wenn du den Strom anstellst und dann läuft es und läuft und läuft und ... Es hat kein Ende. Auf dem Controller ist nichts vorhanden was dein Programm jede µs einmal ausführt oder startet oder was auch immer.
Soviel erstmal um eventuell vorhandene Unklarheiten zu beseitigen.
Gruß
Dino