Dein PIC hat "on change interrupts" auf vier Eingängen vom Port B (B4 bis B7). Dann könntest du es in ISR ohne zusätzlicher Hardware lösen.
Dein PIC hat "on change interrupts" auf vier Eingängen vom Port B (B4 bis B7). Dann könntest du es in ISR ohne zusätzlicher Hardware lösen.
Geändert von PICture (26.06.2011 um 14:31 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Das war meine erste Idee. Das Problem dabei ist, daß dieser Interrupt auf beide Flanken reagiert. Daß heißt, beim Drücken der Taste springt der PIC in die Routine, die das Relais schaltet und beim Loslassen greift schon der Interrupt und das Relais wird wieder abgeschaltet.
Nach jeder Flanke kannst du aber alle B4 bis B7 Pins mit nötiger für Entprellung Verzögerung (um 10 ms) in ISR prüfen und entsprechend reagieren.
Es ist auch möglich bei jedem "on change interrupt" nur ein Flag setzen und den momentanen Zustand der Pins danach im Hautprogramm bearbeiten. Selbstverständlich muss das Hautprogramm das Flag ständig überwachen.
Geändert von PICture (26.06.2011 um 15:15 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Lesezeichen