Hallo! Ich möchte gerne an einem Port-Eingang des LPC2294 eine positive Flanke erkennen. Mein Code: if (((I0PIN0 = (1 << 13) == 0) && (I0PIN0 = (1 << 13) == 1)) {...} Ich bin überhaupt nicht sicher ob das so läuft. Geschweige denn so richtig ist. Kann mir jemand helfen, wäre sehr dankbar. MFG Hotte
>if (((I0PIN0 = (1 << 13) == 0) && (I0PIN0 = (1 << 13) == 1)) >{...} >Ich bin überhaupt nicht sicher ob das so läuft. Geschweige denn so >richtig ist. Ist es nicht. (1 << 13) == 0 ist immer false (1 << 13) == 1 ist immer false
Die Implementierung hängt davon ab, was sonst noch geschehen soll. Hier ein Beispiel:
1 | int main(void) |
2 | {
|
3 | char cLastState; |
4 | |
5 | ... // Initialisierung der I/O-Pins |
6 | |
7 | cLastState = 0xFF; |
8 | |
9 | while (1) |
10 | {
|
11 | if ((IOPIN0 & (1 << 13)) != 0) // Eingang ist aktuell HIGH |
12 | {
|
13 | if (cLastState == 0) // Eingang war zuletzt LOW |
14 | {
|
15 | ... // steigende Flanke erkannt -> Aktion ausführen |
16 | cLastState = 0xFF; |
17 | }
|
18 | }
|
19 | else
|
20 | cLastState = 0; |
21 | }
|
22 | }
|
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.