J'ai un petit soucis sur le Pic18F26K22
Voila sa se résume à ça, si j'envoie du 5 volts sur la broche RA5 la led qui est sur RC4 doit s'allumer, si pas de tension sur RA5 la led doit s'éteindre,.... et ben c'est pas le cas.
Si RA5 passe 1 allumer RC4
Si RA5 passe 0 éteindre RC4
C'est tout bête, et ben ça fonctionne pas sur l'entrée de RA5, mais ça fonctionne sur tout le reste du PORTA
J'ai essayé avec 3 Pic18F26K22, j'ai le même résultat.
Je voudrais savoir le pourquoi....ai-je fais une erreur en oubliant un registre.... Il y de quoi ce taper un..
Code
Code : Tout sélectionner
;***********************************************************************************************
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
radix dec ; par defaut en mode décimal
list p=18f26K22 ; processeur utilisé
#include <p18f26K22.inc> ; Définitions des constantes
;***********************************************************************************************
; CONFIG11H
CONFIG FOSC = INTIO67
CONFIG FCMEN = OFF
CONFIG IESO = OFF
; CONFIG2L
CONFIG PWRTEN = OFF
CONFIG BOREN = OFF
CONFIG BORV = 190
; CONFIG2H
CONFIG WDTEN = OFF
CONFIG WDTPS = 1
; CONFIG3H
CONFIG CCP2MX = PORTC1
CONFIG PBADEN = OFF
CONFIG CCP3MX = PORTC6
CONFIG HFOFST = OFF
CONFIG T3CMX = PORTC0
CONFIG P2BMX = PORTC0
CONFIG MCLRE = INTMCLR
; CONFIG4L
CONFIG STVREN = OFF
CONFIG LVP = OFF
CONFIG XINST = OFF
CONFIG DEBUG = OFF
; CONFIG5L
CONFIG CP0 = OFF
CONFIG CP1 = OFF
CONFIG CP2 = OFF
CONFIG CP3 = OFF
; CONFIG5H
CONFIG CPB = OFF
CONFIG CPD = OFF
; CONFIG6L
CONFIG EBTR0 = OFF
; CONFIG6H
CONFIG EBTR1 = OFF
; CONFIG7L
CONFIG EBTR2 = OFF
; CONFIG7H
CONFIG EBTR3 = OFF
;*************************************** assignations *****************************************
#DEFINE led1 LATC,4 ; RC4 ==> led verte, témoin de mise en fonction de l'appareil
;****************************** déclaration des variables *************************************
CBLOCK H'20' ; bank0
loop1 :1
loop2 :1
loop3 :1
loop4 :1
loop5 :1
loop6 :1
loop7 :1
loop8 :1
loop9 :1
durée :1
ENDC
;** "Macro pour faire une durée de temps, qui peut aller de 10 ms minimum à 2550 ms maximum "**
tempo MACRO valeur1, valeur2
movlw valeur1 ;
movwf durée ; durée du temps défini par la valeur1
call _10ms
ENDM
;****************************** adresse de depart après reset **********************************
ORG H'0'
bra debut
;********************************* interruption haute priorité *********************************
ORG H'8'
retfie
;********************************* interruption basse priorité *********************************
ORG H'18'
retfie
debut
;******************** "configuration de l'oscillateur du microcontrôleur" **********************
movlw B'01110100' ; oscillateur à 16 Mhz, fréquence stable si PLL (16 * 4)= 64 Mhz
movwf OSCCON
;**************************** configuration du registre OSCTUNE ********************************
movlw B'00000000' ; bit 6 à 1 : PLL * 4
movwf OSCTUNE ; bit 6 à 0 : PLL désactivé
;*************************** 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), 7(RA5)
;**************************** 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)
;**************************** configuration du registre ANSELC *********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELC ; en mode E/S : 13(RC2), 14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)
;***********************************************************************************************
movlw B'00000000' ; comparateur 1 off
movwf CM1CON0
movlw B'00000000' ; comparateur 2 off
movwf CM2CON0
;***************** configuration des registres TRISA & TRISB & TRISC & TRISE *******************
movlw B'11111111' ; RA0(2), RA1(3), RA2(4), RA3(5), RA4(6), RA5(7), RA6(10), RA7(9)
movwf TRISA ;
movlw B'11111111' ; RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)
movwf TRISB
movlw B'00000000' ; RC0(11), RC1(12), RC2(13), RC3(14), RC4(15), RC5(16), RC6(17), RC7(18)
movwf TRISC
movlw B'00001000' ; RE3(1)
movwf TRISE ;
;**************************** configuration du registre INTCON *********************************
movlw B'00000000' ;
movwf INTCON ; interruption hors service
;***********************************************************************************************
clrf PORTA
clrf LATA
do
btfsc PORTA,5 ; si PORTA passe 1 allumer led
bsf led1
btfss PORTA,5 ; si PORTA passe 0 éteindre led
bcf led1
tempo 100 ,0 ; macro : temps, chiffre(0) ou varible(1)
; 1000 ms temps de visionnage
bra do
;********************** "pause de 10 millisecondes pour horloge de 16 Mhz" *********************
_10ms
movlw D'241'
movwf loop1
movlw D'52'
movwf loop2
decfsz loop1
bra $-D'2'
decfsz loop2
bra $-D'6'
decfsz durée,F
bra _10ms
return
end
pour ceux qui aurait la réponse, et qui répondrons.
A+