Hallo an alle und einen schönen guten Tag. Es tut mir jetzt schon leid das es so viel zu lesen ist aber ich wüsste nicht wie ich das drastisch abkürzen könnte. Vielleicht findet sich ja einer der das erklären und nachvollziehen kann. Danke Hier ist mein Beitrag zu dem ich nun noch mal eine Frage habe: Beitrag "Logik/Statusveränderungsabfrage" Mir wurde empfholen die Problematik mit einem uC zu realisieren wie man unten lesen kann. Damit bin ich auch einverstanden und habe das für mich entschieden. Ich möchte also eine Statusveränderungsabfrage realisieren, wobei mi geraten wurde das mit XOR-Verknüpfungen zu machen und die am letzten XOR austretenden Signale mit einer steigenden oder fallenden Flanke abzufragen und so die Veränderung festzustellen. Meine Frage bezieht sich jetzt auf die realisierung im uC. Muss ich da denn wirklich im C-Code schreiben: if( PB1 ^ PB2) {var1 = 1} if(var1 ^ PB3) {var2 = 1} if(..... ...... ...... ? Muss ich also die XOR Verschachtelung so vornehmen oder gibt es da einen eleganteren Weg? Vielen Danke schon einmal. MFG Hag
Die Empfehlung mit den XOR-Gattern galt für eine Schaltungsvariante ohne Mikrocontroller. Wenn du hingegen einen µC nimmst, brauchst du das nicht. Dann kannst du einfach in regelmäßigen Abständen (gesteuert per Timer-Interrupt) sämtliche Eingänge einlesen und deren Zustände mit den zuletzt eingelesenen (und abgespeicherten) Werten vergleichen. Wenn du nur wissen willst, ob sich überhaupt etwas geändert hat, kannst du den gesamten Port auf einmal einlesen und so mit einer einzigen Vergleichsoperation bereits acht (bei einem 8-Bit-µC) Eingänge abhandeln. Die Aufgabenstellung ähnelt übrigens dem Thema Tastaturabfrage und -entprellung, zu dem du hier eine Menge Threads findest.
Hallo, du hast nicht gesagt, wieviele Eingänge du abfragen musst. Viele Mikrocontroller haben die Möglichkeit, bei Änderung eines Pins oder auch eines ganzen 8-Bit-Ports einen Interrupt auszulösen. Das stellt die schnellstmögliche Reaktion sicher, aber bei einem Sammelinterrupt musst du trotzdem noch bestimmen, WELCHER Pin sich geändert hat (bei deiner XOR-Methode auch). Gruss Reinhard
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.