int 1 problem

Gast #169354
Lesenswert?

Hallo

Habe einen DTMF dekoder  an einer Mega 162 CPU die zeichen erkant
leitung des DTMF dekoders hängt an int 1.

wird ein gültiges zeichen empfangen spring der controler auch in die
int rotine dort warte ich auf andere DTMF zeichen. die int leitung
wechselt also noch öfters seinen pegel - wenn ich jetzt "reti" mache
springt der controler sofort wieder in meine int 1 rotine.
wie kann ich verhindern das er sich das merkt das wären der interrupt
rotine ein weiterer interrupt ausgefürt wurde ?
Gast #169358
Lesenswert?

Ich kenne mich mit Atmel Mega nicht aus, könnte mir aber vorstellen,
dass irgendwo Flagbits existieren die sich die aufgetretenen Int´s
merken. Die muss man halt vor reti zurücksetzen.
Davon abgesehen ist Warten in der ISR schlechter Programmierstil weil
alles andere blockiert wird.

Dieter
Gast #169359
Lesenswert?

Sagt die "Zeichen erkannt-Leitung" nicht aus, dass genau jetzt ein
gültiges Zeichen erkannt wurde? (Ein Zeichen, nicht mehrere)

Dann übernimm doch in der ISR nur dieses eine Zeichen und beende sofort
mit RETI. Das nächste gültige Zeichen löst dann einen neuen INT aus, in
dem du das nächste Zeichen übernehmen kannst. Die einzelnen Zeichen
kannst du gut in einem Ringbuffer speichern und nach Ausbleiben
weiterer Zeichen auswerten.

...
Gast #169360
Lesenswert?

Hallo

Das programm wolte ich jetzt nicht komplett umschreiben und das in der
zwichenzeit das hauptprogramm nicht weiterleuft ist uberhaup nicht
schlimm....


@mmerten
genau so was such ich ja ein register oder bit das ich zurücksetzen
kann
und die cpu vergessen hat das ein int da war....
Gast #169362
Lesenswert?

hallo

Habe es mal mit GICR vsrsucht das hat nicht geholfen aber GIFR habe ich
wohl übersehen .

Habs auch gleich getestet - und es geht auch so wie ich wollte

Danke Danke Danke

natürlich auch an die anderen Danke

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren