Hi,

Mit dem PIC löst man das Entprellen mit einer Zeitschleife. 10 ms Entprellzeit sind für einen Tastendruck nicht viel. Daher stört es in der Regel nicht, wenn das Programm an dieser Stelle eben 10 ms auf der Stelle tritt.
Nun ja wo kann ich nachgucken wieviel Zyklen ein Befehl hat und wieviel µSek. ein Zyklus ist. Beim 80C535 kann ich mich noch errinern, das ich eine Befehlsliste hatte in der eine Extra Spalte für "Zyklen" gedruckt wurde und ein Zyklus wurde genau in 0,75µs abgearbeitet.
Wie sieht es bei den PICs aus? Nur so kann ich ja eine genau 10ms lange Warteschleife programmieren oder geht das auch anders?


Die Zeitschleife sollte als Unterprogramm abgelegt werden. Dadurch kann sie bei jedem Öffnen und Schließen des Tasters mit nur einem Befehl aufgerufen werden.
Reicht da ein "call" um das Unterprogramm aufzurufen oder kann ich das mit "goto" lösen?

Digger hat in meinem Thread "1.Programm" Delay Zeiten die an 8MHz angepasst sind eingebaut, hab ich aber auch nicht so wriklich verstanden wie man das macht und ob ich das verwenden kann?

->
Code:
;**********SUB _Routinen*************************
DEL1MS      movlw   D'198'      ;t=(n-1)*5+2(call)+6(ret)+7(Kopf)
      movwf   count
      nop
      goto $+1
      goto $+1
DLY1MS      goto $+1
      decfsz   count,f
      goto DLY1MS
      return
DEL200MS   movlw   D'199'
      movwf   tempa
DLY200      call   DEL1MS
      decfsz   tempa,f
      goto   DLY200
      movlw   D'132'
      movwf   count
TWEEK200   decfsz   count,f
      goto   TWEEK200
      nop
      return
DELAY500   movlw   D'250'
      movwf   tempa
DLY500      call   DEL1MS
      decfsz   tempa,f
      goto   DLY500
      movlw   D'64'
      movwf   tweek
TWEEK500   decfsz   tweek,f
      goto   TWEEK500
      movlw   D'250'
      movwf   tempa
DLY501      call   DEL1MS
      decfsz   tempa,f
      goto   DLY501
      movlw   D'64'
      movwf   tweek
TWEEK501   decfsz   tweek,f
      goto   TWEEK501
      return
end
ich werd das erstmal alleien versuchen, wenn ich es nicht hinbekomme werd ich den ganzen Code posten. Vielen Dank ^^

EDIT::// @frank85 Hab gerade deinen Code getestet , es tut sich leider nix,