Forum: Mikrocontroller und Digitale Elektronik Probleme beim TIMER1


von Lukas H. (cupra100)


Lesenswert?

Hallo Zusammen!

Hätte eine Frage zum Timer1 ! Ich programmiere in Assembler MPLAB.
Muss den 16 Bit Timer 1 verwenden für ein Lauflicht. Beschreibe das 
TMR1H und TMR1L Register immer mit verschiedenen Werten ( Je nachdem wie 
die Potentiometerstellung gerade ist). Mein Problem: Das Lauflicht 
blinkt bei den Werten für: 0x2C TMR1L und 0x11 für TMR1H genauso schnell 
wie bei den Werten 0x00 TMR1H und 0x56 für TMR1L ! Wie kann das sein??

LG

von Obermayer F. (Firma: tbd) (foikei)


Lesenswert?

hallo Lukas,

würde gern versuchen dir zu helfen.
Mit deinen Registern meinst du TCNT1H und TCNT1L oder?
Also meines Wissens nach kannst du nicht einfach diese Register füllen, 
weil er bei Erreichen des TOP-Wertes wieder bei 0x0000h 
anfängt...vorausgesetzt du verwendest den Normal-Mode = WGM-Mode 0.
Dann fängt er zwar EINMAL bei deinem Vorgabewert an, zählt aber dann 
wieder von BOTTOM bis TOP.
Welchen µC verwendest du?

mfg
Foikei

von H.Joachim S. (crazyhorse)


Lesenswert?

MPLAB, TMR1H, TMR1L -> PIC?

von Lukas H. (cupra100)


Lesenswert?

Sry..Verwenden den PIC16f88!
Deswegen auch TMR1L und TMR1H!

LG

von Lehrmann M. (ubimbo)


Lesenswert?

Da wäre es schon von nöten, dass du uns Schalplan und den Coder zur 
Verfügung stellst.

von Lukas H. (cupra100)


Lesenswert?

Warum Schaltplan?
Ich kann euch kurz das Programm zeigen für den TMR1:

Initalisierung für TMR1:
           movlw  b'00010001'
    movwf  T1CON

timer1_loop
        bcf    PIR1,TMR1IF
        clrf  TMR1L
        movf  tmr1h_reg,w
        movwf  TMR1H
        movf  tmr1l_reg,w
        movwf  TMR1L
loop1      btfss  PIR1,TMR1IF
        goto  loop1
        return

tab_timerlow
          movlw   high tablestart
        movwf   PCLATH
            movlw   low tablestart
                  addwf   address, w
                  btfsc   STATUS, C
                  incf    PCLATH, f
                  movwf   PCL
tablestart
        retlw 0x00     ;WERT LED DISPLAY0
        retlw 0x11
        retlw 0x22
        retlw 0x33
                                .
                                .
                                retlw 0x2C  ;WERT 255

tab_timerhigh
        movlw   high tablestart2
        movwf   PCLATH
            movlw   low tablestart2
                  addwf   address2, w
                  btfsc   STATUS, C
                  incf    PCLATH, f
                  movwf   PCL

tablestart2
        retlw 0x00
        retlw 0x00
        retlw 0x00
                                .
                                .
                                retlw 0x11 ;Wert 255


main_1                          movlw   d'0'
                  movwf   address
                  call    tab_timerlow
        movwf  tmr1l_reg
        nop


        movlw  d'0'
        movwf  address2
        call  tab_timerhigh
        movwf  tmr1h_reg
        nop



        call  timer1_loop



PS: ist nur ein Programmteil.
LG

von Obermayer F. (Firma: tbd) (foikei)


Lesenswert?

PIC? dann bin ich leider raus :-)


mfg
Foikei

von Lukas H. (cupra100)


Lesenswert?

Ja PIC 16f88!

Bitte um Hilfe!
Irgendwer eine Idee?

LG

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.