Hallo erstmal, ich bin recht neu in dem Theme mikrocontroller und möchte das ganze mit C Programmieren, jetzt bin ich schon seit längeren auf der Suche nach einer Hilfe zum Thema Interrupt, also ich möchte das ein Programm bei Tastendruck startet und bei selbigen Tastendruck wieder aufhört, mhmmmm nur leider bekomme ich das alles andere als gebacken. Wäre sehr sehr nett von euch wenn mir jemand helfen kann :) Ansonsten frohe Ostern
für so etwas brauch man eigentlich kein Interrupt. Zeig doch mal was du bis jetzt gemacht hast.
int main(void) { DDRA=0xF0; while(1) { i=4; for (i=5;i<=7;i++) PORTA=~(1<<i); _delay_ms(200); } for (i=1;i<=3;i++) { PORTA=~(0x80>>i); _delay_ms(200); } } } Also es soll dieses Programm durchlaufen sobald die Taste gedrückt wird und anhalten wenn die Taste gedrückt. Wir machen das gante mit einem Atmega16 und die Interrupt Befehle mit cli und sei sind mir bekannt ich weiß nur nicht wie ich das ganze in den C code verpackte dass es auch wirklich läuft.
ich würde denke, das Hauptproblem ist das du mit delay arbeitest. Das ist zwar für das erste Blinken ok, aber es ist halt später immer ein Problem. Du kannst das nicht sinnvoll unterbrechen. Versuche das Programm so zu schreiben, das es immer eine Hauptschleife durchläuft, ohne das irgendwo eine delay vorhanden ist. Mit hilfe eines Timers kann du dir die Info besorgen ob gerade 100ms vergangen sind und dann in der Hauptschleife eine LED schalten. Dann damit kannst du einfach in der Hauptschleife deinen Taster abfragen und darauf reagieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.