Bonjour à tous,
J'aurais aimé un peu d'aide pour des problèmes que je n'arrive pas à résoudre:
Mon pic est un 18F4520
Tout d'abord, j'ai un problème quant à l'utilisation de la pin MCLR: je l'utilise en tant que port en input (RE3). Seulement, si je veux programmer je suis obliger de la relier à l'ICD 3, et je suis également obligé de couper la piste qui va en input sinon mplab bug. Le problème est que je ne peux pas débugger en utilisant cette pin en tant qu'input (reliée à l'entrée data d'un registre à décalage).
Pour la relier à l'ICD3, j'ai ajouter une resistance de pull up. Même quand je désactive mclr dans le programme (MCLRE=OFF) mplab bloque toujours quand la PIN est reliée des 2 côtés! Est-ce que MCLR est indispensable à la programmation/debug? Comment faire pour ne pas avoir à couper la piste à chaque fois et pouvoir debugger avec cette pin?
D'autre part j'ai un problème quant à la programmation du PIC pour la communication avec 5 registres à décalage en cascade reliés avec la pin DATA (déjà pour 1 je ne sais pas comment faire). 1 registre est relié à 8 leds. Admettons que je veux allumer la led numéro 4, voilà ma routine:
Movlw 4 ; transfert 4 bits
movwf countLED
rcall LEDS
...
LEDS
bcf PORTB,5 ;Reset Leds
movlw 0xAA ; valeur 10101010
movwf Var ; chargée dans la variable "Var"
Loop
rlcf Var,f ;rotation à gauche de la variable "var"
btfss STATUS,C ;Retenue = 1? si oui sauter l'instruction suivante
bcf PORTE,3 ;sinon on met la ligne DATAS à 0
btfsc STATUS,C ;Retenue à 0? si oui sauter l'instruction suivante
bsf PORTE,3 ;sinon on met la ligne DATAS à 1
bsf PORTC,2 ;\
bsf PORTE,2
nop ; |Générer un front d'horloge
bcf PORTE,2
bcf PORTC,2 ;/
decfsz countLED,f ;tout les bits sont ils envoyés? Si oui sauter instruction suivante
goto Loop ;sinon on boucle
Je n'ai pas bien compris le fonctionnement avec les 2 horloges SH_CP et ST_CP, je sais que je dois latcher les autres leds quand je veux en allumer 1 seule à la fois mais je ne sais pas vraiment comment faire. POur l'instant ce que j'ai fait me fait un peu n'importe quoi.
Merci d'avance
-----