je veux utiliser le timer 1 de ce contrôleur.
je définis quelques constantes utiles à l'initialisation comme suit :
Code : Tout sélectionner
PIE1VAL EQU B'00000000'
; toutes IT périphériques disable
; cf page34 du Datasheet
T1CONVAL EQU B'00000000'
; bit 7, T1GINV : 0 sans objet
; bit 6, TMR1GE : 0 pas de gate
; bit 5, 4 T1CKPS: 00 préscaler = 1:1
; bit 3, T1OSCEN : 0 Oscilateur OFF
; bit 2, T1SYNC : 0 ignoré en mode timer
; bit 1, TMR1CS : 0 internalClock
; bit 0, TMR1ON : 0 Timer 1 stopé
; cf page81 du Datasheet
; valeur initiale de INTCON
INTCONVAL EQU B'11100000'
; bit 7 = 1 : enables unmasked
; interrupts
; bit 6 = 1 : enables all
; peripheral interrupts
; bit 5 = 1 : enables TMR0 IT
; bit 4 = 0 : disables GPIO port
; change interrupt
; bit 3-0 = 0 sans objet
; cf page 32 du DataSheet
Dans la phase d'initialisation du programme j'exécute le code
Code : Tout sélectionner
BANK1
.../..
movlw PIE1VAL
movwf PIE1
movlw OSCCONVAL
movwf OSCCON
BANK0
movlw INTCONVAL
movwf INTCON ; initialise INTCON
movwf T1CONVAL
movwf T1CON
Juste après cette phase d'initialisation, j'exécute le code
Code : Tout sélectionner
; autorise les IT timer 1
BANK0
clrf TMR1H
clrf TMR1L
bcf PIR1, TMR1IF
bsf T1CON, TMR1ON
BANK1
bsf PIE1, TMR1IE
A partir de ce moment, je pensais voir TMR1L s'incrémenter à chaque instruction (puisque le prescaler est à 1:1) même d'ailleurs sans armer le bit TMR1IE de PIE1. Or rien ne bouge sous MPSIM.
Quelqu'un a-t-il une idée de ma (mes) bévue(s) ?
Merci


