Forum: Mikrocontroller und Digitale Elektronik Interrupt Neuling


von Tom L. (1sttomus)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

für so etwas brauch man eigentlich kein Interrupt.

Zeig doch mal was du bis jetzt gemacht hast.

von Tom L. (1sttomus)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Rolf M. (rmagnus)


Lesenswert?

Schau dir mal Entprellung an.

von Tom L. (1sttomus)


Lesenswert?

Vielen Dank für die schnellen Antworten, mal schauen ob ich es hin 
bekomme

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
Noch kein Account? Hier anmelden.