Časovač TMR1 - příznak PIR1 nastaven, přerušení se nevyvolá

Zdravim. Mam problem s casovacom TMR1 pracujucim v rezime timer. Mam nastaveny nulty bit T1CON, mam nastaveny INTCON, mam nastaveny PIE1. Ide o to ze aj ked pretecie TMR1 nevyvola sa prerusenie. Flag v registri PIR1 je nastaveny, ale program to jednoducho ignoruje a pokracuje v chode bez skoku na vektor prerusenia. Myslel som ze ide o chybu v mplabe, ale ani s aktualnou verziou to nefunguje. Ma niekto skusenosti s TMR1? Je mi to totiz moc podozrive. Ak bude treba - dam aj kusok programu v asm… Dakujem

:arrow_right: administrator: přejmenováno z "casovac TMR1"

a mas povoleny globalni preruseni ?? INTCON,GIE, hot sem kod ,

Povolení globálního přerušení nestačí, musíš ještě povolit INTCON.PEIE

Velmi pekne dakujem. PEIE veru aktivovane nemam. Ale ani som na to nevidel dovod - ani v datasheete som sa o tom pri TMR1 nedocital. Mal som za to ze PEIE aktivuje periferie. Fakt dakujem - zas som o nieco mudrejsi…

V datasheetu to najdeš v této tabulce:
PIC_TMR1.JPG

jeste doplnim, bit PEIE se musi nastavit jenom pro preruseni od PERIFERII
do PERIFERII patri : (zalezi na PICu)
Paralerni port
A/D
USART
SSP
CCP1
TMR1
TMR2
EEPROM
.

PEIE neplati pro:
TMR0
RB0/INT
RB<7:4>

osobne sem este nepouzil preruseni od periferii , me to netrklo ze to bude PEIE
Interrup_logic_PIC_16f628.JPG

Petr - ta tabulka to si ty zvyraznoval nie? Ja pouzivam klasicky anglicky datasheet - ale ako vidim dakde bude k dispozicii aj jeho prelozena verzia? Nie ze by to bolo nutne, ale potesi tych co jazyky nemaju v naplni prace. Ked som kukol do mojho DS - tak tam bola ta tabulka ale bez zvyraznenia registrov - cize bity su tam vseobecne vsetky uvedene. Preto som tomu nevenoval pozornost… Este raz dakujem

at se kouknu do CZ ci ENG data sheetu tak je to tam barevne odliseny, bila -registry/bity ktere maji vztah k TMR1, seda - nemaj vztah

překlady originálních dokumentací
ENG.JPG
CZ.JPG