Zählen mit PIC? aaaaaaarg!?
Hi Leute hab hier ein kleines Problem:
Ich möchte (um es endlich zu kapieren) mit einem Taster an RA4 und einer LED auf RB0 an
einem PIC 16F84 einen Zähler bis 10 (mit dem Timer 0) zum laufen bekommen.
Ich dachte eigentlich, dass ich das mit dem Code hier hinbekomme.
Aber ich find wohl den Fehler nicht.
Code:
list p=16f84
#include <P16f84.INC>
;************************************************* ********
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator*
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;************************************************* ********
Ini_con Equ B'00000000' ; TMR0 -> Intetupt disable
Ini_opt Equ B'00000010'
;************************************************* *********
Init bsf STATUS, RP0 ; Bank 1
movlw Ini_opt ; pull-up on
movwf OPTION_REG
movlw B'11111000' ; RA0 .. RA2 outputs, RA3, RA4 input
movwf TRISA ;
movlw B'00000000' ; PortB alle outputs
movwf TRISB
bcf STATUS, RP0 ; Bank 0
clrf PORTA
clrf PORTB
movlw Ini_con ; Interupt disable
movwf INTCON
;************************************************* *********
bsf STATUS, RP0 ; Bank 1
bsf OPTION_REG, T0CS; RA4-Takt zum Timer0
bsf OPTION_REG, PSA ; noch ohne Vorteiler
bcf STATUS, RP0 ; Bank 0
main
bcf INTCON, T0IF
movlw D'245' <hier versuch ich
movwf TMR0 <den Zähler ab245
movlw B'00000000' <zählen zu lassen
movwf PORTB
BTFSC INTCON, T0IF
goto main
led movlw B'1111111'
movwf PORTB
end
Also wenn von euch einer ne Ahnung hat woran es liegen könnte dann
bitte gebt mir Bescheid.
Weitere Infos:
der Pic liegt (richtig gepolt) an +5V
ich habe mit dem Oszi meine saubere Schwingung vom Quarz an Osz1
der Taster ist mit einem Pulldown an RA4 angeschlossen (10k)
Reset liegt über 1k auf +5V
Mfg
Christian
Re: Zählen mit PIC? aaaaaaarg!?
Hallo mal wieder
Also ich hab jetzt den Code geändert :
jetzt hab ich an PORTB dauernd Hi:
Ich hab das OPTREG so beschrieben
Ini_opt Equ B'00101000' wie Andreas es gesagt hat:
Zitat:
list p=16f84
#include <P16f84.INC>
;************************************************* ********
; bis 4 MHz: Power on Timer, kein Watchdog, XT-Oscillator*
__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC
;************************************************* ********
Ini_con Equ B'00000000' ; TMR0 -> Intetupt disable
Ini_opt Equ B'00101000'
;************************************************* *********
Init bsf STATUS, RP0 ; Bank 1
movlw Ini_opt ; pull-up on
movwf OPTION_REG
movlw B'11111000' ; RA0 .. RA2 outputs, RA3, RA4 input
movwf TRISA ;
movlw B'00000000' ; PortB alle outputs
movwf TRISB
bcf STATUS, RP0 ; Bank 0
clrf PORTA
clrf PORTB
movlw Ini_con ; Interupt disable
movwf INTCON
;************************************************* *********
main
bcf INTCON, T0IF
movlw D'245'
movwf TMR0
movlw B'00000000'
movwf PORTB
BTFSC INTCON, T0IF
goto main
led movlw B'1111111'
movwf PORTB
end
Tja gebracht hat es nur das der PortB jetzt dauernd Hi ist ?!?
hat irgendjemand ein Beispiel wo mit einem PIC ereignisse Gezählt wurden und dann an einen oder mehrere Pins ausgegeben wurden???
Mfg
Christian