tmr0 į 16f84a

D

daniel2004

Guest
Labas aš kvailas klausimas, manau, kad aš esu labai trūksta kažko pagrindinio čia.

I cant Atrodo gauti TMR0 į prieaugio MPLAB, ir nemanau, kad jis dirba arba TIFF.Pirmas I setup Option_Reg ir nustatyti T0CS, siekiant paversti laikmatis išjungtas.Kai noriu laikmatis tikėtis aš aišku T0CS taip laikmatis bus prieaugis išjungti vidinį laikrodį.Šis dosnt atsitikti.Mano svarstymo duomenų lapas Laikmatis turėtų prieaugis šiuo režimu nesvarbu kas.Turiu patikrinti MPLAB, kad visi bitai buvo nustatyta ir pašalinta, kaip jie turėtų būti, dar nėra laimės.Tikiuosi, kad kas nors čia galėtų mesti šiek tiek šviesos apie tai.

Ačiū
Daniel

# define Procesorius 16F84A

LIST p = 16F84A;, F = INHX8M
# include <P16F84A.inc>

__config _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC;************************************************* ***********
; MEMORY prilygsta
;************************************************* ***********

W_Temp kongresas 0x20
STATUS_Temp kongresas 0x21
Delay kongresas 0x22

;************************************************* ***********
; Reset ir Interrupt Vektoriai

ORG 0x0000; Reset Vector
GOTO Pradžia

ORG 0x0004; Pertraukties vektoriaus
GOTO IntVector

;************************************************* ***********
; Programa prasideda čia

ORG 0x005
Pradžia
BSF STATUSAS, RP0
MOVLW h'FF "
MOVWF TRISA
CLRF TRISB
BSF TRISB, 7
BSF TRISB, 6

BSF OPTION_REG, T0CS; Timer0 neveikia
BSF OPTION_REG, T0SE; prisikėlimo kraštas
BCF OPTION_REG PSA bo Prescaler tmr0 naudojimas
BSF OPTION_REG, PS2; Didžiausias Prescaler
BSF OPTION_REG, PS1
BSF OPTION_REG, PS0
CLRF INTCON; Pradėti naują
BCF INTCON, T0IE; Įjungti TMR0 Nutraukti
BCF INTCON, T0IF; Išvalyti TMR0 vėliava
BCF STATUS, RP0; Bank0
CLRF TMR0
BSF INTCON, GIE
GOTO Pagrindinis

Svarbiausias
; BTFSS Porta, 1
; GOTO Pagrindinis
CLRF PORTB
BSF PORTB, 0
BSF STATUSAS, RP0
BCF OPTION_REG, T0CS; Pradėti TMR0
BCF STATUS, RP0
MOVF Delay, W
SUBLW d'76 '
BTFSS STATUS, Z
GOTO
BSF STATUSAS, RP0
BSF OPTION_REG, T0CS; Stotelė TMR0
BCF STATUS, RP0
CLRF TMR0
BSF PORTB, 1
; GOTO Pagrindinis

Main_a
GOTO Main_a

IntVector
BSF PORTB, 3
MOVWF W_Temp; Kopijuoti W iki TEMP registras
SWAPF Statusas W; Sukeisti statusas turi būti įrašyti į W
CLRF statusą; banko 0, neatsižvelgiant į jų esamą bankas, išvalo TPG RP1, RP0
MOVWF STATUS_Temp; Prisiminti statusas banko nulio STATUS_TEMP registras

INCF Delay
CLRF TMR0
BCF INTCON, T0IF

SWAPF STATUS_Temp, W; Sukeisti STATUS_TEMP registruotis į W
; (rinkiniai banko į pradinę būseną)
MOVWF statusą; Perkelti W į Registras
SWAPF W_Temp, F; Sukeisti W_TEMP
SWAPF W_Temp, W; Sukeisti W_TEMP į W
RETFIE

pabaiga

 
Labas,

Aš ne išgyveno savo kodą, tai yra beveik 4 ten, kur aš esu,
bet yra ir 16F84A lape dėmesį, kad sako:

"Rašymas į TMR0 kai Prescaler yra
priskiriamas Timer0 bus aišku Prescaler
skaičius, bet ne pakeisti Prescaler
užduotis. "(19 puslapis)

Ar gali būti, kad esate zresetowaniem įsigijęs visą laiką?

Labanakt ...
/ Rambo

 
Hai
Taip pat patikrinkite oro timer0 kiekis vidinio laikrodžio ar išorinių impulsų iš jo indėlio PIN.tai probabile dalykas.
Picstudent

 

Welcome to EDABoard.com

Sponsor

Back
Top