Forum: Mikrocontroller und Digitale Elektronik Led Blink-Pause verlängern im Assembler-Code. Wie?


von MichZet (Gast)


Lesenswert?

Hallo.
Ich komme nicht dahinter. Wie bekomme ich die Pause verlängert?

Wie bekomme ich am besten eine Pause realisiert mit einer regelbaren 
konstanten um eine Led über die zeitkonstante dann zu dimmen?

MichZet

  List p=16f84

  #include<P16f84.INC>

        __CONFIG        _PWRTE_ON & _WDT_OFF & _XT_OSC

  ;************************************************

  ZAEHL1  equ 0c    ;Erster Zaehler für Warteschleife
  ZAEHL2  equ 0d    ;Zweiter Zaehler für Warteschleife

  bsf   03h,5     ; Auf Bank1 Umschalten
  movlw   0x0  ;
  movwf   TRISB    ; PortB auf Ausgang
  bcf   03h,5    ; zurück auf Bank0 umschalten
  clrf    PORTB           ; alle LEDs ausschalten
START
        btfss  PORTA,0    ; wenn PortA gedrückt pause

   call Pause
  bcf  PORTB,2    ; PortB 2 Aus
  bsf     PORTB,0    ; PortB 0 An
   call Pause    ;
  bsf  PORTB,2    ; PortB 2 An
  bcf     PORTB,0    ; PortB 0 Aus

  goto START    ;
Pause
Loop1
     decfsz ZAEHL1,1    ;Ziehe 1 ab von 255
        goto Loop1              ;wenn nicht 0, springe zu Loop1
  decfsz ZAEHL2,1   ;Ziehe 1 ab von 255
        goto Loop1    ;Springe zum Start der
 Warteschleife, wenn nicht 0. Diese
         ;Schleife zaehlt 255 mal von 255 auf 0 herunter

   Return

  End

Danke

von MichZet (Gast)


Lesenswert?

Ich habs
Danke
Sorry

von Dieter W. (dds5)


Lesenswert?

Nun, im Moment wird sowohl nach dem Einschalten als auch nach dem 
Ausschalten der LED mit "Pause" die gleiche Zeit gewartet.

Um eine der beiden Zeiten zu ändern, muss eine zweite "Pause" aufgerufen 
werden. Wo die ihren Wert herbekommt ist wieder eine andere Baustelle.

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
Noch kein Account? Hier anmelden.