Interrupt rising/falling unter Bascom

Gast #174026
Lesenswert?

Hallo,

ich hab folgendes Problem:
Ich moechte unter Bascom, innerhalb eines Programmes den
Interrupt umkonfigurieren von Rising auf Falling.
(Moechte die Zeit mit Hilfe eines Timers, zwischen Rising und Falling
messen)

siehe :
Config Int1 = Rising
On Int1 Int1_ris
Enable Int1


Int1_ris:
  Disable Int1
  Timer1 = 0
  Config Int1 = Falling
  On Int1 Int1_fal
  Enable Int1
Return

Int1_fal:
  Disable Int1
  measure_tim = Timer0
  Config Int1 = Rising
  On Int1 Int1_ris
  Enable Int1
Return


Leider bekomme ich beim compilieren dann immer eine Fehlermeldung:
ISR already defined
und zwar fuer die beide letzten Zeilen "on int1 ...."

Bin um jede Hilfe dankbar

Gruss Mike
Gast #174027
Lesenswert?

Und wenn Du den Int1 auf Toggle, also rising und falling einstellst?
Muß dann in der Int1-ISR nur herausfinden, ob nun rising oder falling
bzw. das Int1-Bit prüfen und danach verzweigen.

MfG
Andi
Gast #174028
Lesenswert?

Hi Mike,
du kannst in der laufenden Interruptroutine den Interrupt nicht
umdefinieren.
Lösung: in der Interruptroutine ein Flag setzen und dann im
Hauptprogramm auf die fallende Flanke warten.
Vielleicht auch in der Interruptroutine auf die fallende Flanke warten,
aber das ist eine unsichere Lösung, könnte sein, daß da "jemand"
dazwischenfunkt.

lg Ralf ;-)
Gast #174029
Lesenswert?

Vielen Dank Andi
und vielen Dank auch Ralf lach

Hab derweilen schon die "ultimative Lösung" gefunden.
So wie es Ralf schon sagte, hab Rising / Falling in einer
externen Routine, durch Flag´s gesteuert ausgewertet.
Klappert wunnnneeebaaaar :o)

Dankeschön :o)

lg
Mike

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