Etape 5: Mise en œuvre de notre bibliothèque
Maintenant, nous voulons inclure la bibliothèque, que nous avons créé pour interfacer avec le microcontrôleur de la cartouche d’encre.Au début du fichier, ajoutez :
#include « epsnCart.h » / / le nom du fichier d’en-tête créé précédemment
Puisque ce microcontrôleur fait semblant d’être l’hôte, ils contrôlent la SCK, les signaux SDA et la TVD. pour s’assurer qu’elles soient sorties, ajoutez ceci avec les autres registres TRIS dans main() :
epsnCartInit() ;
Le bit de code suivant est ce que j’ai utilisé à l’intérieur de la while(1) {
Il demande une adresse commençant par 0 x 00, puis incrémente de 1 après que 32 lu octets :
Sub main() {}
char addr = 0, i = 0 ;
chaîne de char [40] ;
...
epsnCartInit() ; Initialisé les broches utilisées
while(1) {/ / Loop pour toujours !
sprintf (chaîne, "cartouche de lecture avec addr : 0x%02X\r\n",addr) ;
putsUSART(string) ; imprime un messge comme : cartouche de lecture avec addr: 0 x 03
epsnCartStart(addr,0) ; Commencer en envoyant l’adresse en mode lecture epsnCartStop() ; apporte la TVD retour faible putrsUSART("\r\n") ; addr ++
i = 0 ;
while(i<32) {/ / keep en boucle jusqu'à ce que je n’est donc plus moins de 32
sprintf(String,"0x%02x,",epsnCartRead()) ;
putsUSART(string) ;
i ++ ;
}
if(addr>7) {}
addr = 0 ;
}
DelayMS(500) ;
}
}
Vous êtes probablement en regardant la ligne « sprintf(string,"0x%02X,",epsnCartRead()); » et va « Hein? »
sprintf est une fonction de formatage de chaîne, tout comme printf sauf enregistre la chaîne mise en forme dans la variable chaîne.
retourne une chaîne avec une valeur hexadécimale lisible « 0 x % 02 X, » par exemple: 0xFE et epsnCartRead() retourne une valeur qui a été lu du chariot d’encre
Cela a été mis en place avec 3, 3V alimentation car les cartouches d’encre s’exécutent sur 3.3Volts
J’ai programmé cela pour mon microcontrôleur, déconnecté de la tête d’impression de l’imprimante pour éviter les interférences.
J’ai ensuite branché dans les cartouches 3 j’ai eu et allumé.
Remarque : À ce stade, si vous avez exécuté ce code pour la première fois, j’attendrais que vous avez des problèmes. Comme moi, je suis allé sur les dizaines de code de temps, changer ici et là pour le faire fonctionner. C’est normal si cela ne fonctionne pas la première fois pour vous. C’est une expérience très enrichissante, à savoir ce qui s’est mal passé ! : P