Timer1 pre PIC16F877

B

bingoz2002

Guest
Som pomocou zhromaždenia Language (MPLAB) ku kontrole krokového motora a som pomocou časovača modulu a prerušenia.Potrebujem meškanie 0.5s.Avšak, čas bude spôsobí pretečenie (pre volanie prerušenia) po zvýšení o 0000h do FFFFh.To bude trvať 1.04s.Ako môžem dosiahnuť oneskorenie 0,5 s použitím tohto časovača?Vyzerá to, že prírastok od 0000h do FFFFh je pevná a nemožno zastaviť na akúkoľvek inú hodnotu.frekvencia je 2MHz.Pomoc niekto ..

 
bingoz2002 Napísal:

Som pomocou zhromaždenia Language (MPLAB) ku kontrole krokového motora a som pomocou časovača modulu a prerušenia.
Potrebujem meškanie 0.5s.
Avšak, bude časovač spôsobí pretečenie (pre volanie prerušenia) po zvýšení o 0000h do FFFFh.
To bude trvať 1.04s.
Ako môžem dosiahnuť oneskorenie 0,5 s použitím tohto časovača?
Vyzerá to, že prírastok od 0000h do FFFFh je pevná a nemožno zastaviť na akúkoľvek inú hodnotu.
frekvencia je 2MHz.
Pomoc niekto ..
 
Smiem vedieť, aké register / kúsok timer1 je zodpovedný za to??

 
bingoz2002 Napísal:

Smiem vedieť, aké register / kúsok timer1 je zodpovedný za to??
 
Urobila som zmeny v programe, ale stále dáva rovnaké výsledky.v mojom programe, LED by mala tvoriť blinkingl rávu.Avšak, doba potrebná pre LED blikať cca.1s.To je príliš dlhý a musel zmeniť na 0.5s.Snažil som sa uvedenie iné hodnoty v TMR1L a TMR1H, ale stále rovnaké výsledky, 1s.Nižšie sú uvedené kód.môže mi pomôcť, kde hľadať chyby lži?# Include <P16F877.INC>
INIT ORG H'00 'NOPCLRF PCLATH, jasná PAGE BITSBSF STATUS, Rp0BCF STATUS, RP1; BANK1MOVLW B'11110000 'MOVWF TRIS; KONFIGURÁCIA PORTD ako výstupMOVLW H'07 'MOVWF ADCON1

TIMERINIT CLRF PIE1; DISABLE OBVODOVÉ prerušeniaBSF PIE1, TMR1IEBCF STATUS, Rp0; BANK0CLRF T1CON, STOP TIMER1, PRESCALER 1:1CLRF TMR1H, jasná TIMER vysoké prenosové REGISTRAMOVLW H'EF 'MOVWF TMR1HCLRF TMR1L, jasná TIMER LOW uhryzol registerMOVLW H'FF 'MOVWF TMR1LCLRF INTCON; DISABLE prerušeniaCLRF PIR1, jasná OBVODOVÉ prerušenia VLAJKYBSF PIR1, CCP1IFMOVLW 0x30
MOVWF T1CON, PRESCALER 1:8, TIMER1 STOP; OSC DISABLEDBSF INTCON, GIE

ONTIMER BSF T1CON, TMR1ON; TIMER Začína zvyšovanie
WAITOVERFLOW BTFSS PIR1, TMR1IF, kontrolu pretečeniu dôjdeGOTO WAITOVERFLOW; znížiť čakacie
Preruší COMF PORTABCF PIR1, TMR1IF, jasná prerušiť FLAGGOTO WAITOVERFLOW
END
 
Práve som sa prebral, tak môj mozog nie je celkom jasné, ale vidím to už:

MOVLW H'EF '
MOVWF TMR1H
MOVLW H'FF '
MOVWF TMR1L

Takže napíšete H'EFFF '(D'61439') na Timer1, ktorá zodpovedá vo vašom prípade v trochu menej ako 1 sec.

Musíte napísať H'7FFF '(D'32767'), aby Timer1 cca.0.5sec.

Budem mať bližšie pozrieť na váš kód, keď som naozaj hore ...

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsmev" border="0" />CD

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsmev" border="0" />
 
'Som to zmenil na 7FFF ale stále rovnaké.Má to čo robiť s prescaler?Snažím sa zmeniť prescaler až 4 miesto 8.Budem držať výsledok posta.Pridané po 45 minútach:podarilo sa mi získať 0.5s meškanie zmenou prescaler a uvedenie v hodnote h'7FFF 'v Timer1.Avšak som stále kuriozít.Aký vplyv má prescaler mať na časovač.Ja naozaj pochopiť.Urobil som výskum, a všetko, čo hovorí, bolo to, že prescaler určuje hĺbku ..Čo dát znamená?Uvedomil som si, že keď prescaler je nastavený na 1:2 a 1:1, blikanie je ešte rýchlejší ..

 
bingoz2002 Napísal:

'Som to zmenil na 7FFF ale stále rovnaké.
Má to čo robiť s prescaler?
Snažím sa zmeniť prescaler až 4 miesto 8.
Budem držať výsledok posta.
 
Má TMR1H a TMR1L slúži inému účelu kontroly čas.Urobil som zmenu hodnoty, ale neboli pozorované žiadne účinky.Iba zmenou prescaler potom som videl THR zmeny v čase.
Na základe vykonaného výskumu sme zistili, že musíme stanoviť CCP, aby sa nechal TMR1L / H, aby účinky.Je to naozaj nutné?

 
Ahoj
TMR1H sú TMR1L proste registrov, ktoré obsahujú hodnota časovača.

Môžete čítať a zapisovať do týchto registrov.

Ak niečo napíšete do týchto registrov môžete časovač pretečenia dochádza rýchlejšie, a preto môžete ovládať časovanie.

Ale Presclar váhy nadol cykloch tak, aby náplň týchto dvoch registrov je možné ovládať z nich.

Ale v skutočnosti som didnt dostať na vašu otázku.

ide o
Gopi

 
bingoz2002 Napísal:

Má TMR1H a TMR1L slúži inému účelu kontroly čas.
Urobil som zmenu hodnoty, ale neboli pozorované žiadne účinky.
Iba zmenou prescaler potom som videl THR zmeny v čase.

Na základe vykonaného výskumu sme zistili, že musíme stanoviť CCP, aby sa nechal TMR1L / H, aby účinky.
Je to naozaj nutné?
 

Welcome to EDABoard.com

Sponsor

Back
Top