Bonjour à vous,
Je travaille actuellement , dans le but d'un stage, sur un logiciel qui permet d'initialiser une carte d'interface et de contrôler les sous-ensembles d'un monnayeur. Ce dernier est géré entre autre en i2c, où RTS est la ligne SDA en émission , DTR est la ligne SCL, et CTS est la ligne SDA en réception. J'ai réussi à initialiser la carte ( il suffit d'envoyer à un PCF8574 les données 11111000, en gérant la clock et SDA en même temps.) ce qui était mon travail principal. Mais maintenant je dois pouvoir déterminer quel composant ne fonctionne pas, je m'explique:
Sur la carte d'interface, il y a au total 4 PCF8574 dont j'ai déterminé les adresses. L'un d'eux sert à alimenter la carte ( ce que j'appelle l'initialiser), ce qui se fait donc au début , puis basta. Les autres servent à activer ou non divers électro-aimant, pour ouvrir un clapet par exemple.
Mon objectif est donc de déterminer l’état des broches P0-P7 de chaque PCF lorsqu'elles sont au repos ( ceci je peux le faire à l'oscilloscope dans le pire des cas.) histoire de faire un modèle de l'état "normal" des broches P des PCF, Mettre le tout dans un tableau 1, et faire un tableau 2 qui me donnerait l'état "actuelle" des broches P des PCF afin de pouvoir comparer les deux tableaux ( et ainsi déterminer un composant défectueux etc...).
Je ne suis pas sûr de savoir comment faire les tableaux pour l'instant mais ce n'est pas ça mon soucis le plus important. Ce que je voudrais savoir, c'est comment faire pour lire les données de CTS bit par bit , afin de remplir le tableau deux.
J'envisageais une solution où j'aurais appelé le PCF voulu en mode lecture (jusque là , pas de soucis avec les fonction RTSEnable et DTRenable) puis après l'ACKnowledge, lorsque l'on commence donc à lire les données , placer la fonction CTSHolding après chaque "pic" de la fonction DTR ( SCL). Exemple:
'on vient d'envoyer l'adresse du PCF et de recevoir le bit d'acknowledge
MSComm1.DTREnable = True
Sleep(1) 'tempo obligatoire du fait de la lenteur de la fct° DTREnable
MSComm1.CTSHolding = True 'lecture du premier bit
MSComm1.DTREnable = False 'Arrivée du premier bit vers le PC
Sleep(1)
MSComm1.DTREnable = True
Sleep(1)
MSComm1.CTSHolding = True 'lecture du second bit
MSComm1.DTREnable = False 'Arrivée du deuxième bit vers le PC
'ETC...
Le soucis c'est que je ne vois pas comment on affiche les bits reçu par cts holding, je ne sais pas non plus si je ne vais pas rater les bits que je veux, je ne sais pas non plus si mon utilisation de cette fonction est correct.