Forum: Projekte & Code Flankenerkennung


von Karlheinz Druschel (Gast)


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

von m@is (Gast)


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

von OldBug (Gast)


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...

von m@is (Gast)


Lesenswert?

OldBug mal wieder...

Danke für Deine Tips und Tricks!

Gruß m@is

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
Noch kein Account? Hier anmelden.