Bonjour à tous,
Travaillant actuellement en tant qu'ingénieur en électronique analogique, je dois réaliser un système de mesure de fréquence et de pilotage pour commander des gradins de résistance de puissance en numérique. Le cœur du système est un microcontrôleur PIC 18F 45K80. Etant moins spécialisé en électronique embarquée j'aurais besoin de vos lumières pour élucider un problème persistant.
Les 12 fils en sorties sont reliés aux 8 ports de sortie du port C et au 4 bits de poids le plus faible du port D. Avant de passer au programme complet, je teste, sous le logiciel MPLAB X IDE un programme très simple déclarant tout les ports ( A B C et D) en sortie et forçant toutes les sorties à 1. Je compile le programme et implante le fichier .hex sur mon IPE de MPLAB, et au final toutes les sorties du port C et D sont à 1, sauf les 2 premières sorties du port C ( RC0 et RC1).
Je me suis renseigné sur les datasheet, tutoriels et livre associés (Tavernier), et personne ne cite de paramétrage spécifique des sorties pour le PORT C, hormis le fait de mettre le TRISC à 0 pour une sortie. Je suspectait en premier lieu un défaut du point de vue du circuit, et j'ai donc commandé un circuit neuf, que j'ai testé. Même problème, 2 port inactifs.
Eloignant donc le problème du coté du hard, je me suis renseigné sur les pins associés, en relation avec le Timer 1, sur MPLAB je configure les registres pour configurer le timer afin de libérer mon port RC1 et RC0 ... et c'est là que les choses se compliquent ... à la compilation toujours le même problème. Ma plaquette LABDEC est en très bonne état, le circuit est neuf, les câblages sont corrects et vérifiés par une autre personne.
J'ai essayé par curiosité d'implanter le même algorithme dans d'autres pics, ( 16f916, 18f26k22 ) ... toujours le même problème, une ou 2 sorties indisponibles, et pourtant dans le monde de la théories et des livres, sont censées être accessibles.
Je n'arrive pas à joindre mon programme en pièce jointe, voici donc le main :
Donc toujours le même problème : aucune erreur à la compilation, mais sur le hard toujours au moins 2 pin inactives : la 15 et la 16 du pic 18F45K80.Code:void main(void) { ANCON0=0; ANCON1=0; TRISB=0; TRISC=0; TRISA=0; TRISD=0; PORTB=0b00000000; PORTC=0b00000000; PORTA=0b00000000; PORTD=0b00000000; while(1) { PORTB=0b11111111; PORTC=0b11111111; PORTA=0b11111111; PORTD=0b11111111; } }
Quel est votre diagnostic?
-----