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
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
Da wäre es schon von nöten, dass du uns Schalplan und den Coder zur Verfügung stellst.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.