Stap 5: Uitvoering van onze bibliotheek
Nu willen we de bibliotheek die hebben wij gemaakt voor de microcontroller met de inktcartridge interfacing.Boven aan het bestand toevoegen:
#include "epsnCart.h" / / de naam van het headerbestand die we eerder hebben gemaakt
Aangezien deze microcontroller is doen alsof ze de gastheer, controleren ze het SCK, SDA en RST signalen. dus zorg ervoor dat ze uitgangen, voeg dit met de andere registers van TRIS binnen main():
epsnCartInit();
Het volgende stukje code is wat ik gebruikt binnenkant van de while(1) {
Het vraagt om een adres basisgewicht 0x00 dan wordt verhoogd met één na 32 bytes lezen:
void main() {}
char addr = 0, i = 0;
char tekenreeks [40];
...
epsnCartInit(); De pinnen gebruikt geïnitialiseerd
while(1) {/ / eeuwig!
sprintf (tekenreeks, "lezing cartridge met addr: 0x%02X\r\n",addr);
putsUSART(string); drukt een messge zoals: lezing cartridge met addr: 0x03
epsnCartStart(addr,0); Start door het adres in de Leesmodus te verzenden epsnCartStop(); brengt eerste terug laag putrsUSART("\r\n"); addr ++
Ik = 0;
while(i<32) {/ / houden totdat ik een lus is niet langer kleiner is dan 32
sprintf(String,"0x%02X,",epsnCartRead());
putsUSART(string);
i ++;
}
if(addr>7) {}
addr = 0;
}
DelayMS(500);
}
}
U bent waarschijnlijk op zoek naar de regel "sprintf(string,"0x%02X,",epsnCartRead());" en gaan "Huh?"
sprintf is een tekenreeks die opmaak functie, heel erg zoals printf behalve de opgemaakte tekenreeks opgeslagen in de variabele string.
"0 x % 02 X," geeft een tekenreeks met een leesbare hexadecimale waarde bv: 0xFE en epsnCartRead() retourneert een waarde die werd voorgelezen van de inkt-kar
Dit werd opgezet met een 3.3V stroomvoorziening, omdat de inktcartridges op 3.3Volts draaien
Ik dit aan mijn microcontroller geprogrammeerd, de printerkop losgekoppeld van de printer om storingen te voorkomen.
Ik aangesloten dan in de 3 inktcartridges ik had en ingeschakeld.
Opmerking: Op dit punt, als u deze code hebt uitgevoerd voor de eerste keer, zou ik verwachten dat u problemen hebt. Net als ik, ik heb over de code tientallen malen veranderen hier en daar te laten werken. Het is normaal als het niet de eerste keer voor u werkt. Het is een geweldige leerervaring uitzoeken wat er mis ging! : P