Voilà je n'arrive pas à provoquer une interruption sur le débordement du Timer1 avec le Pic18F27K42, les bit que j'ai configuré sont
PIR4,TMR1IF = 0 effacer flag interupttion
PIE4,TMR1IE = 1 autorisation d’interruption sur le débordement du timer1
INTCON0,GIE = 1 mise en fonction des interruption
T1CON,TMR1ON = 1 mise en route du timer1
Au départ du programme j'allume une LED, une fois les interruptions enclenchés, et après un certain temps, celle-ci devrait s'éteindre, et ce n''est pas le cas,
Avez-vous une idée ?
Voici le code qui est tout simple
Code : Tout sélectionner
Errorlevel-302 ; supprime le message "Ensure that bank bits are correct"
Errorlevel-311 ; suprime le message "l'opérande de l'opérateur HIGH était plus grand que H'FFFF' "
radix dec ; par defaut en mode décimal
list p=18F27K42 ; processeur utilisé
#include <p18F27K42.inc> ; Définitions des constantes
;***********************************************************************************************
; CONFIG1L
CONFIG FEXTOSC = OFF ; Sélection de l'oscillateur externe (oscillateur non activé)
CONFIG RSTOSC = HFINTOSC_64MHZ ; Réinitialiser la sélection de l'oscillateur (HFINTOSC avec HFFRQ = 64 MHz et CDIV = 1: 1)
; CONFIG1H
CONFIG CLKOUTEN = OFF ; Bit d'activation de la sortie d'horloge (la fonction CLKOUT est désactivée)
CONFIG PR1WAY = OFF ; PRLOCKED One-Way Set Enable bit (le bit PRLOCK peut être défini et effacé à plusieurs reprises)
CONFIG CSWEN = ON ; Bit d'activation du commutateur d'horloge (l'écriture sur NOSC et NDIV est autorisée)
CONFIG FCMEN = OFF ; Bit d'activation du moniteur d'horloge de sécurité (Fail-Safe Clock Monitor désactivé)
; CONFIG2L
CONFIG MCLRE = EXTMCLR ; Bit d'activation MCLR (si LVP = 0, la broche MCLR est MCLR; si LVP = 1, la fonction de broche RE3 est MCLR)
CONFIG PWRTS = PWRT_64 ; Bits de sélection du minuteur de mise sous tension (PWRT réglé à 64 ms)
CONFIG MVECEN = ON ; Bit d'activation multi-vecteur (multi-vecteur activé, table vectorielle utilisée pour les interruptions)
CONFIG IVT1WAY = OFF ; Bit IVTLOCK Bit d'activation unidirectionnel (le bit IVTLOCK peut être effacé et réglé à plusieurs reprises)
CONFIG LPBOREN = OFF ; Bit d'activation BOR basse consommation (ULPBOR désactivé)
CONFIG BOREN = OFF ; Brown-out Reset Enable bits (Brown-out Reset désactivé)
; CONFIG2H
CONFIG BORV = VBOR_245 ; Bits de sélection de tension de réinitialisation de Brown-out (tension de réinitialisation de Brown-out (VBOR) réglé sur 2,45 V)
CONFIG ZCD = OFF ; Bit de désactivation ZCD (ZCD désactivé. ZCD peut être activé en définissant le bit ZCDSEN de ZCDCON)
CONFIG PPS1WAY = OFF ; Bit PPSLOCK Bit d'activation de réglage unidirectionnel (le bit PPSLOCK peut être défini et effacé à plusieurs reprises (sous réserve de la séquence de déverrouillage))
CONFIG STVREN = OFF ; Bit d'activation de la réinitialisation de la pile pleine / sous-débit (pile pleine / sous-débit ne provoquera pas de réinitialisation)
CONFIG DEBUG = OFF ; Bit d'activation du débogueur (débogueur d'arrière-plan désactivé)
CONFIG XINST = OFF ; Extended Instruction Set Enable bit (Extended Instruction Set and Indexed Addressing Mode disabled)
; CONFIG3L
CONFIG WDTCPS = WDTCPS_11 ; Bits de sélection de période WDT (rapport de division 1: 65536)
CONFIG WDTE = OFF ; Mode de fonctionnement WDT (WDT désactivé; SWDTEN est ignoré)
; CONFIG3H
CONFIG WDTCWS = WDTCWS_7 ; Bits de sélection de fenêtre WDT (fenêtre toujours ouverte (100%); contrôle logiciel; accès par clé non requis)
CONFIG WDTCCS = SC ; Sélecteur d'horloge d'entrée WDT (Software Control)
; CONFIG4L
CONFIG BBSIZE = BBSIZE_512 ; Bits de sélection de la taille du bloc de démarrage (la taille du bloc de démarrage est de 512 mots)
CONFIG BBEN = OFF ; Bit d'activation du bloc de démarrage (bloc de démarrage désactivé)
CONFIG SAFEN = OFF ; Bit d'activation Flash de la zone de stockage (SAF désactivé)
CONFIG WRTAPP = OFF ; Bit de protection en écriture du bloc d'application (bloc d'application non protégé en écriture)
; CONFIG4H
CONFIG WRTB = OFF ; Configuration Register Write Protection bit (Configuration registers (300000-30000Bh) not write-protected)
CONFIG WRTC = OFF ; Bit de protection en écriture du bloc de démarrage (bloc de démarrage (000000-0007FFh) non protégé en écriture)
CONFIG WRTD = OFF ; Bit de protection en écriture de l'EEPROM de données (l'EEPROM de données n'est pas protégée en écriture)
CONFIG WRTSAF = OFF ; Bit de protection en écriture SAF (SAF non protégé en écriture)
CONFIG LVP = OFF ; Bit d'activation de la programmation basse tension (HV sur MCLR / VPP doit être utilisé pour la programmation)
; CONFIG5L
CONFIG CP = OFF ; Bit de protection du code PFM et des données EEPROM (protection du code PFM et EEPROM des données désactivée)
; CONFIG5H
;*************************************** assignations *****************************************
#DEFINE led1 LATB,5 ; RB5 ==> led rouge, témoin de mise en fonction de l'appareil
;********************************* "déclaration des variables" *********************************
CBLOCK H'00' ; bank0
loop1 :1
loop2 :1
loop3 :1
loop4 :1
loop5 :1
res8 :1
res16 :1
ENDC
;********************************** "déclaration des macros" ***********************************
;* *
;************************* "Macro pour se positionner dans un tableau" *************************
tableau MACRO adresse
movlw UPPER(adresse) ;
movwf TBLPTRU ;
movlw HIGH(adresse) ;
movwf TBLPTRH ;
movlw LOW(adresse) ;
movwf TBLPTRL
ENDM
;******************************* "adresse de depart après reset" *******************************
ORG H'0'
bra debut
ORG H'8' ;
bra declencher ;
ORG H'18' ;
bra declencher ;
;***********************************************************************************************
declencher
bcf led1 ; éteindre la led
bcf T1CON,TMR1ON ; arrêt du timer1
clrf PIR4 ; effacer flag interupttion du timer1 causé par le débordement
retfie
debut
;**********************************************************************************************
BANKSEL OSCCON1 ; bank 57
movlw 0x60 ;
movwf OSCCON1
;**********************************************************************************************
BANKSEL ANSELA ; bank 58
;*************************** configuration du registre ANSELA **********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELA ; en mode E/S : 2(RA0), 3(RA1), 4(RA2), 5(RA3), 6(RA4), 7(RA5), 9(RA7), 10(RA6)
;**************************** configuration du registre ANSELB *********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELB ; en mode E/S : 21(RB0), 22(RB1) 23(RB2), 24(RB3), 25(RB4), 26(RB5), 27(RB6), 28(RB7)
;**************************** configuration du registre ANSELC *********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELC ; en mode E/S : 11(RC0), 12(RC1), 13(RC2), 14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)
;**************************** configuration du registre WPUA ***********************************
movlw B'00000000' ; tirage de résistance sur :
movwf WPUA ; pas de tirage de résistance sur : 2(RA0), 3(RA1), 4(RA2), 5(RA3), 6(RA4), 7(RA5), 10(RA6), 9(RA7)
;**************************** configuration du registre WPUB ***********************************
movlw B'00000000' ; tirage de résistance sur
movwf WPUB ; pas de tirage de résistance sur : 21(RB0), 22(RB1), 23(RB2), 24(RB3), 25(RB4), 26(RB5), 27(RB6), 28(RB7)
;**************************** configuration du registre WPUC ***********************************
movlw B'00000000' ; tirage de résistance sur :
movwf WPUC ; pas de tirage de résistance sur : 11(RC0), 12(RC1), 13(RC2), 14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)
;**********************************************************************************************
BANKSEL CM1CON0 ; bank 62
;************************* configuration du registre CM1CON0 & CM2CON0 *************************
movlw B'00000000' ; comparateur 1 off
movwf CM1CON0
movlw B'00000000' ; comparateur 2 off
movwf CM2CON0
;***************** configuration des registres TRISA & TRISB & TRISC & TRISE *******************
BANKSEL TRISA ; bank 63
;**********************************************************************************************
movlw B'00000000' ; 2(RA0), 3(RA1), 4(RA2), 5(RA3), 6(RA4), 7(RA5), 10(RA6), 9(RA7)
movwf TRISA ;
movlw B'00000000' ; 21(RB0), 22(RB1), 23(RB2), 24(RB3), 25(RB4), 26(RB5), 27(RB6), 28(RB7)
movwf TRISB ;
movlw B'00000000' ; 11(RC0), 12(RC1), 13(RC2), 14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)
movwf TRISC ;
; 1(RE3)
; 8,19(VSS), 20(VDD)
;*************************** configuration du registre INTCON0 *********************************
bcf INTCON0,GIE ; disable high priority interrupts, idem GIEH
;************************************ départ du programme **************************************
clrf PORTA ; PORTA, PORTB, PORTC ,LATA,LATB,LATC bank 63
clrf PORTB
clrf PORTC
clrf LATA
clrf LATB
clrf LATC
;************************************ départ du programme **************************************
;**************************** "témoin visuel de mise en fonction" ******************************
bsf led1 ; allumage de la led1
;***********************************************************************************************
BANKSEL PIE4 ; bank 57
clrf PIE4 ;
bcf PIE4,TMR1IE ; b0 = 1 autorisation d’interruption sur le débordement du timer1
clrf PIR4 ; bank 57
; effacer flag interupttion du timer1 causé par le débordement ,
;***********************************************************************************************
BANKSEL INTCON0 ; bank 63
clrf TMR1H ; bank 63
clrf TMR1L ; bank 63
clrf T1CON ; bank 63
bsf T1CON,TMR1ON ; T1CON bank 63
; mise en fonction du timer1
bsf INTCON0,GIE ; INTCON0 bank 63
; mise en service des interruptions
;***********************************************************************************************
terminer
nop
bra terminer
End


pour ta réponse
Ça fonctionne, mais on aurais pu chercher longtemps, ça viens de 2 choses, la configuration des bits dans