Autor Thema: Neue Frage zu Zeitschleifen.  (Gelesen 2837 mal)

Offline Otto

  • Newbie
  • *
  • Beiträge: 30
    • Profil anzeigen
Neue Frage zu Zeitschleifen.
« am: Oktober 20, 2013, 19:09:01 Nachmittag »
Zeitschleifen mache ich oft, für mich kein Thema wie es programmiert wird. Aber...

Wie kann ich darin eine Taste überwachen? Also ob die Taste gedrückt oder nicht gedrückt ist.
Die Taste bringt aktiv H, passiv L
Solange die Taste gedrückt ist, soll die Zeitschleife laufen, wird die Taste losgelassen, soll die Zeitschleife stehen bleiben. Wird nun die Taste wieder gedrückt, soll die Schleife weiterlaufen usw.
Auch soll beim drücken ein Relais anziehen, beim loslassen abfallen. Ebenso wenn die Schleife auf Null steht.

Die Schleife ist zB. so programmiert:

Zeit1      movlw   d'70'      ;Zähler 1 laden
      movwf   count1      ;insges.ca. 700ms Schleife
 lade      movlw   0xFF      ;Zähler 2 laden
       movwf   count2
dec1      decfsz   count2,f   ;dekrementiere Zähler 2
      goto   dec1              ;nochmal 2
      decfsz   count1,f   ;dekrementiere Zähler 1
      goto   lade
      return
wo binde ich nun die Taste ein? Mit obiger Funktion?

Harte Nuss?

Offline DerFlo

  • Newbie
  • *
  • Beiträge: 44
    • Profil anzeigen
Re: Neue Frage zu Zeitschleifen.
« Antwort #1 am: Oktober 21, 2013, 17:45:27 Nachmittag »
Hallo,
wie wäre es wenn du den Taster an RB0 setzt und abfragst wenn ein interrupt kommt?
Es wäre auch interessant welchen Prozessor du verwendest und den kompletten Code bitte.
Eine harte Nuss sieht anders aus :)
Hast du den Taster entprellt?

Offline Otto

  • Newbie
  • *
  • Beiträge: 30
    • Profil anzeigen
Re: Neue Frage zu Zeitschleifen.
« Antwort #2 am: Oktober 24, 2013, 19:15:50 Nachmittag »
hallo,
danke für deine Antwort.
1. RB 0 INT benötige ich anderweitig.
2. Prozessor ist der 16F84 oder 16F 628 (unterscheidend sich nur geringfügig)
3. Ich habe das mittlerweilen gelöst, indem ich immer wieder nach jedem 'decfsz' zum überwachten
Taster springe und schaue ob gedrückt (H) oder nicht gedrückt (L)
Falls gedrückt, ins Unterprogramm.

Also es läuft einwandfrei. Da ich die Zeitglieder vom Prozessortakt ableite, kann ich momentan so wie die Schaltung ist, nur den 16F84 einsetzen, denn den kann ich über ein RC Glied mit 6 kHz fahren.
Entsprechend :4 = 1500 Hz!
Geht beim 16F628 nicht, niedrigste  Taktfrequenz habe ich ausprobiert, die noch sicher ist, ist 45 kHz.
Geht mit einem Widerstand. In der Config fehlt die Angabe -RC-!
Wenn, dann könnte ich eventuell eine Frequenz extern einspeisen  (bei Config -ER-).
Ob der dann mit 6 kHz noch richtig geht, muss ich erst probieren.

Also, an Alle:
Danke für eure Bemühungen!
Otto

 


* Recent Topics