Flankenerkennung

Gast #79625
Lesenswert?

Hi,
hier mal ein paar Zeilen Code, um einen beliebigen Flankenwechsel zu
erkennen.
Die Bits r0 werden einzeln geprueft, bei einem Flankenwechsel (0-->1
oder 1-->0) wird das entsprechende Bit in r4 für 1 Zyklus gesetzt.
Bitte beachten, dass r3 zwischen den Aufrufen nicht geaendert werden
darf, also vielleicht im RAM sichern oder so ...


mov r1, r0
mov r2, r1
eor r1, r3
mov r3, r2
mov r4, r1


Greetings
Karlheinz
Gast #79626
Lesenswert?

FRAGE: kann ich beim MSP430 auch einen Flankenwechsel high => low
erkennen?
Bisher Frage ich per (Timer-)Interrupt einen Porteingang regelmäßig ab.
Schön wäre es nur auf einen Flankenwechsel zu reagieren.

Ich benutze IAR, den MSP430F123 und programmiere in C (nur wenn ich muß
in Assembler)

Gruß m@is
Gast #79627
Lesenswert?

Wenn Du einen Interruptfähigen Port verwendest, (beispielsweise Port1.2)
dann geht das so:

P1IES &= ~BIT2;      /* Interrupt on rising edge  */
P1IES |= BIT2;      /* Interrupt on falling edge  */

Gruß,
Patrick...

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