- LiTime Speicher und Akkus         
Ergebnis 1 bis 8 von 8

Thema: Tastenabfrage mit PIC16f84a

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.06.2011
    Beiträge
    10

    Tastenabfrage mit PIC16f84a

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo zusammen,

    ich habe gerade ein kleines Programmierproblem und finde irgendwie dafür keinen richtigen Ansatz. Ich habe an einem PIC 4 Taster an PORT B und an PORT A hängen drei Relais. Bei drücken der Taste eins soll das Relais 1 anziehen, mit der Taste 2 das Relais 2 usw. dann soll der Prozessor eine Warteschleife durchlaufen und dann das entsprechende Relais wieder abschalten. Soweit auch kein Problem. Ich möchte aber jetzt, daß der Prozessor ein eingeschaltetes Relais sofort wieder abschaltet, falls während der Wartezeit einer der vier Taster betätigt wird. Hat jemand nen Tipp für eine elegante Lösung für das Problem?

  2. #2
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Hallo Frank Murmann!

    Ich würde während jedem Durchlauf der Warteschleife die gewünschte vier Taster abfragen.
    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!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    14.06.2011
    Beiträge
    10
    Das hat zwei Nachteile:

    1. Wenn eine Taste gedrückt wird und der Prozessor bearbeitet gerade eine andere Anweisung als die Abfrage, wird der Tastendruck nicht registriert.
    2. Es ist nicht sehr elegant.


    Da es sich um eine sicherheitsrelevante Anwendung handelt, stört mich insbesondere der erste Punkt. Ich dachte mehr so an einen Interrupt oder so ...

  4. #4
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    Sorry, ich kenne dein ganzes System nicht und das nur mein spontaner Vorschlag war.

    Ich kann leider auch bei erstem Beitrag nicht erkennen, was für eine Antwort erwartet ist, da "eleggante Lösung" immer relativ. ist.
    Geändert von PICture (26.06.2011 um 14:45 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!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    14.06.2011
    Beiträge
    10
    Null Problemo. Jeder Tip ist besser als gar kein Tip . Ich bin gerade dabei zu versuchen, den RA0 als INT-Eingang zu verwenden. Die vier Taster werden per OR-Gatter auf den RA0 gelegt. Den kann ich flankengesteuert abfragen. Also werde ich, GIE nur während der Warteschleifen einschalten. Ich hoffe, das funktioniert dann ...

  6. #6
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    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 15: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!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    14.06.2011
    Beiträge
    10
    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.

  8. #8
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    72
    Beiträge
    11.077
    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 16: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!

Ähnliche Themen

  1. PIC16F84A & PIC16LF84A
    Von prinz im Forum PIC Controller
    Antworten: 5
    Letzter Beitrag: 11.12.2007, 21:12
  2. Brennvorgang PIC16F84A
    Von ToniThiele im Forum PIC Controller
    Antworten: 6
    Letzter Beitrag: 07.08.2007, 11:44
  3. PIC16F84A - Zyklusdauer
    Von t0b4d im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 23.05.2007, 23:45
  4. Auslesen des DS18S20 mit dem PIC16F84A
    Von schally im Forum PIC Controller
    Antworten: 11
    Letzter Beitrag: 16.04.2007, 19:30
  5. Indirekte Adressierung PIC16F84A
    Von wolf*** im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 01.01.2007, 08:06

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus