Reverse Engineering att emulera bläckpatroner för skrivare Epson (5 / 8 steg)
Steg 5: Genomför vårt bibliotek
Nu vill vi ta biblioteket vi skapat för gränsyta mikrokontroller till bläckpatronen.Lägg till överst i filen:
#include "epsnCart.h" / / namnet på sidhuvudfilen vi skapade tidigare
Eftersom denna microcontroller utger sig för att vara värd, kontrollerar det SCK, SDA och första signaler. så se till att de är utgångar, Lägg till detta med TRIS register inuti main ():
epsnCartInit();
Den nästa bit kod är vad jag använde insidan av de while(1) {
Det begär en adress som börjar på 0x00 sedan ökar med ett efter 32 läst byte:
void main () { ... While(1) {/ / slinga för evigt! sprintf (sträng, "behandlingen patronen med ADR: 0x%02X\r\n",addr);
char addr = 0, jag = 0;
char sträng [40];
epsnCartInit(); Initierats stiften används
putsUSART(string); skriver ut en messge som: behandlingen patronen med addr: 0x03
epsnCartStart(addr,0); Börja med att skicka adressen i läs-läge Jag = 0; epsnCartStop(); tar första tillbaka låg putrsUSART("\r\n"); addr ++
While(i<32) {/ / hålla looping tills jag inte längre är mindre än 32
sprintf(String,"0x%02X,",epsnCartRead());
putsUSART(string);
i ++;
}
IF(addr>7) {
addr = 0;
}
DelayMS(500);
}
}
Du är förmodligen tittar på raden "sprintf(string,"0x%02X,",epsnCartRead());" och gå "Va?"
sprintf är en sträng formatering funktion, mycket lik printf utom sparar formaterade strängen till variabel strängen.
"0 x % 02 X," kommer att returnera en sträng med en läsbar hexadecimalt värde t.ex.: 0xFE och epsnCartRead() returnerar ett värde som lästes från ink cart
Detta inrättades med en 3,3 v strömförsörjning eftersom bläckpatronerna köras på 3.3Volts
Jag programmerade detta till min microcontroller, frånkopplad skrivarhuvudet från skrivaren för att förhindra störningar.
Jag satt då i 3 bläckpatronerna jag hade och satte på den.
Obs: Vid denna punkt, om du körde här koden för första gången, förväntar jag du har problem. Som jag, jag har gått över koden dussintals gånger, ändra den här och där för att få det att fungera. Det är normalt om det inte fungerar första gången för dig. Det är en stor erfarenhet av lärande räkna ut vad som gick fel! : P