Problem mit externen Ints und "timer on Compare" interrupt

Gast #254270
Lesenswert?

Ich habe ein großes Problem mit meinen Interruptfunktionen.

Wenn ich von meinem "externen Interrupt 3" aus in meine SIGNAL
(SIG_OUTPUT_COMPARE3A) Schleife springe, dann wird die dort drin
stehende "Wartezeit" beachtet, springt der Controller hingegen vom
"externen Iterrupt 0" aus in die selbe Schleife, dann wird die
Wartezeit einfach ignoriert.

Weiß jemand weiter??

Anbei der relevante Codeauszug in c.

Danke im Voraus

René
Angehängte Dateien:
Gast #254273
Lesenswert?

Hallo Hannes, kannst du mir da weiterhelfen? Ich verstehe den thread
nicht so ganz. Es geht hier ja nur um die Auswahl des externen
Interrupts. Wenn ich die Zeile SIGNAL (SIG_INTERRUPT3) in
SIGNAL (SIG_INTERRUPT0) ändere, dann wird die Wartezeit einfach
ignoriert. Kann das sein??

Vielen Dank im Voraus

Ciao René
#254274
Lesenswert?

Ich werde dir bei deinem kryptischen Bezeichnern in BASCOM nicht helfen
können.

Ich schreibe in Assembler, das ist einfacher und übersichtlicher, da
gelten nur die Informationen des Datenblattes des Controllers. Im
Datenblatt sind die AVR-Architektur und alle I/O-Features incl.
I/O-Register und deren Bits ausführlich und eindeutig beschrieben. Auch
eine für den jeweiligen Typ gültige Liste der ASM-Befehle mit
Kurzbeschreibung ist im Datenblatt enthalten. Es gibt also (für mich)
keinen Grund, mich auch noch mit kryptischen Bezeichnungen und
Config-Anweisungen von BASCOM zu befassen.

Die Interrupts wähle ich durch den Aufruf in der
Interrupt-Vektortabelle aus. Den Namen der ISR darf ich selbst
bestimmen, der Aufruf muss nur exakt in der richtigen Speicheradresse
stehen. Und die sind im Datenblatt unter interrupt-sources genau
aufgelistet.

...

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