Guten Tage, Als Anfänger, möchte ich mit ein Mega 8515 6 Tasten abfragen über Interrupt. ich habe aber nur INT0 und INT1 gibt es trik um dieser probleme zu lösen? Ich möchte ein Uhr aufbauen wo ich die Datum und Zeiten einstellen kann. Ich programiere in ASM mit STK 500 und AtmelStudio 8 Danke für die Antworten Claude
Claude B. schrieb: > ich habe aber nur INT0 und INT1 gibt es trik um dieser > probleme zu lösen? Ja, gibt es, z.B. indem du einen Timer Interrupt benutzt und bei jedem Interrupt einmal auf die Tasten guckst. Dann kannst du dich gleich mit dem Thema Entprellung vertraut machen.
Vielen dank wolfgang Ich wollte das noch nicht machen, aber ich doch woll. Nochmal vielen danke Claude
Stefan schrieb: > Indem du sie entkoppelst mit Dioden. Ich habe ein ähnliches Problem. Könntest du das mit den Dioden etwas näher erläutern?
Andreas schrieb: > Stefan schrieb: >> Indem du sie entkoppelst mit Dioden. > > Ich habe ein ähnliches Problem. Könntest du das mit den Dioden etwas > näher erläutern? Ich heiße nicht Stefan aber vielleicht meint er: Jeden Taster auf der einen Seite mit GND verbinden. Die andere Seite der Taster mit verschiedenen Eingängen am Mega verbinden, vorzugsweise den Pins eines Ports. Pullups nicht vergessen. Dann noch von jedem dieser Eingänge eine Diode auf zB INT0 schalten. Jetzt kann jeder Taster einen INT0 auslösen ohne einen anderen Portpin zu beeinflussen. In der ISR kann dann der Portpin des auslösenden Tasters gesucht werden. Vorteilhafter ist aber sicher die Pollingmethode aus dem Artikel "Entprellung".
vasuch schrieb: > Jeden Taster auf der einen Seite mit GND verbinden. > Die andere Seite der Taster mit verschiedenen Eingängen am Mega > verbinden, vorzugsweise den Pins eines Ports. Pullups nicht vergessen. > Dann noch von jedem dieser Eingänge eine Diode auf zB INT0 schalten. > Jetzt kann jeder Taster einen INT0 auslösen ohne einen anderen Portpin > zu beeinflussen. Vielen Dank. Jetzt habe ich es kapiert!
Ja, ist schon 1000mal erklärt worden, dass Tasten nichts am Interrupt zu suchen haben (einzige Ausnahme: wecken eines schlafenden Prozessors) Die Abfrage im Polling kostet so gut wie nichts, minimale Rechenzeit, minimaler Programmspeicher.
ist schon richtig, kein Tasten in Interrupt, aber so werden ertmal für Anfänger erklärt wie ein Interrupt funtioniert, und Erlich gesagtich kann mit ein dioden matrix (das ist doch ein) noch nicht anfangen, wenn nicht ein bisschen mehr erklärung rauskomm wie kanne ich erkennen daß das ist die Taste 1 und nicht die 5 die gerade gedrückt wurde? Claude
Im einfachsten Fall: jede Taste an einen eigenen (beliebigen) Pin, alle zusammen über Dioden dann an einen weiteren interruptfähigen Pin. Jede Taste löst also den gemeinsamen Int aus, und in der zugehörigen ISR kann man dann abklappern, welche Taste es nun war. Alternativ gibts noch bei vielen AVRs pinchange-Interrupts. Aber auch da muss man nachschauen, welcher Pin es nun genau war (Interrupts sind in Gruppen zusammengefasst). Aber: lass es sein.
Claude B. schrieb: > ist schon richtig, kein Tasten in Interrupt, aber so werden ertmal für > Anfänger erklärt wie ein Interrupt funtioniert Die grundsätzliche Funktion eines Interrupts lernst du mit einem Timer genauso gut kennen. Mit dem Vorteil, daß du damit bei Tastenabfrage und Entprellung gleich auf dem richtigen Weg bist.
H.Joachim S. schrieb: > Im einfachsten Fall: jede Taste an einen eigenen (beliebigen) Pin, alle > zusammen über Dioden dann an einen weiteren interruptfähigen Pin. Jede > Taste löst also den gemeinsamen Int aus, und in der zugehörigen ISR kann > man dann abklappern, welche Taste es nun war. > Alternativ gibts noch bei vielen AVRs pinchange-Interrupts. Aber auch da > muss man nachschauen, welcher Pin es nun genau war (Interrupts sind in > Gruppen zusammengefasst). > Aber: lass es sein. Danke Joachim, ich verstehe schon besser, das bedeutet auch dass ich nicht mit die Tasten der STK arbeiten kann, aber das ist nicht relevent Claude
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.