Ein Problem sind die "_delay_ms".
In der Zeit macht der µC nichts (außer warten).
Der Code ist so nicht gedacht das man mehr als das Blinken machen kann.
Eine Möglichkeit wäre:
Code:
Startmarke {sofern main(void) nicht bereits eine Endlosschleife ist}
Prüfen ob aktuelle Zeit minus Zeitstempel größer oder gleich der Verzögerungszeit ist
Wenn ja, LED togeln und Zeitstempel neu setzen.
Abfrage ob Taster betätigt
Reaktion auf Tastendruck
Sprung zur Startmarke {sofern main(void) nicht bereits eine Endlosschleife ist}
Da ich mich mit dem Attiny2313 und dem C dafür nicht auskenne, kann keinen konkreten Code angeben.
Nach kurzem suchen nach "Attiny2313 C ide" bekomme ich als erste Treffer Arduino IDE und Amtel Studio zurück.
Mit was arbeitest Du denn?
Die Suche nach "Attiny2313 _delay_ms();" hat mich zu:
https://startingelectronics.org/tuto...2313-tutorial/
geführt.
Danach passt die Syntax zu Amtel Studio.
Hier:
http://www.ulrichradig.de/home/uploa...rogramming.pdf
ab Seite 35 gibts was zu den Timern.
Hier:
https://startingelectronics.org/tuto...-polled-timer/
findeset Du etwa in der Mitte der der Seite einen Code der mit dem Timer einen PIN togglet.
Bei jedem Durchlauf der While Schleife wird geprüft ob die Bedingung für einen Toggle erfüllt ist und wenn nicht wird die Schleife weiter abgearbeitet (z.B. Tasterauswertung).
Das ist eine Variante die es ermöglicht mehr als eine Sache auszuführen, da so eine Schleife einige tausend mal durchlaufen wird bevor einmal die Bedingung (1034 Millisekunden vergangen) erfüllt wird.
Lesezeichen