Reverse-Engineering te emuleren inktcartridges voor een Epson-Printer (7 / 8 stap)

Stap 7: Emulatie Code Routines

Nu het leuke gedeelte!

Ik moet de printer om na te denken zijn er vier inktcartridges geïnstalleerd, hiervoor moeten we eerst een aantal emulatie functies implementeren. Weer van voorkennis hebben ik deze in de header vooraf:

• #define epsnCartReady() (_ecRST)
• extern unsigned char espnCartGetAddr(void);
• extern void epsnCartOut (unsigned char gegevens);
• extern unsigned char epsnCartIn (unsigned char gegevens);

epsnCartReady is een macro die wordt gebruikt, Controleer of de printer heeft RST hoog ingesteld.
epsnCartGetAddr resulteert in het adres dat de printerkop vraagt.
epsnCartOut wordt gebruikt om gegevens te verzenden naar de Host-controller
epsnCartIn wordt gebruikt om gegevens te ontvangen vanaf de Host wanneer het schrijven

Dus dit keer, in plaats van beheersing van het SCK te gaan hoog of laag is, we hebben het nodig om te wachten om te gaan hoog of laag, maar als het resetten laag gaat, dan alles stoppen en terug te keren:

unsigned char espnCartGetAddr(void) {}
char i = 0;
char temp = 0x00;

terwijl ((i<4) & & _ecRST) {/ / Loop terwijl ik < 4 en RST is hoog
Temp >> = 1; Recht Shift Temp door een
while((!_ecSCK) & & (_ecRST)); Wachten op de klok te gaan hoog
if(_ecSDA) {/ / slechts als SDA hoog
Temp | = 0x08; Stel de 4de bit
}
while((_ecSCK) & & (_ecRST)) ;// wachten op de klok te gaan lage
i ++; _ / / verhogen de teller
}

if(_ecRST == 0) {}
retourneren 0xFF; //if RST ging lage, betekent de Host gedood het signaal
}
retourneren temp; het adres en de lees/schrijf-bit retourneren
}

En de Out-functie:

VOID epsnCartOut (unsigned char gegevens) {}
char i = 0;
char temp = gegevens;

_ecSDATRIS = 0; de SDA uitgang instellen
_ecSDALat = 0; SDA laag ingesteld

terwijl ((i<8) & & _ecRST) {/ / Loop terwijl ik < 8 en RST is hoog
terwijl (! _ecSCK & & _ecRST); Wachten op SCK te gaan hoog
_ecSDALat = temp & 0x01; SDA hoog of laag volgens de eerste bit instellen

terwijl (_ecSCK & & _ecRST); SCK te laag gaan wachten
Temp >> = 1; Juiste verschuiving de gegevens door een
i ++; de teller verhogen met één
}
_ecSDATRIS = 1; Set SDA op een uitgang
_ecSDA = 1; niet zeker als dit nodig is
}

En ten slotte de functie In:

unsigned char epsnCartIn(void) {}
unsigned char ik = 0;
char temp = 0x00;

terwijl ((i<8) & & _ecRST) {/ / Loop terwijl ik < 8 en RST is hoog
Temp >> = 1; Juiste verschuiving de temp door een
terwijl (! _ecSCK & & _ecRST); SCK te hoog gaan wachten
if(_ecSDA) {//only id SDA is hoog
Temp | = 0x80; Stel de 8e bit
}

terwijl (_ecSCK & & _ecRST) ;// wachten op SCK te laag gaan
i ++; De teller verhogen met één
}
retourneren temp; terug wat we hebben ontvangen
}

Gerelateerde Artikelen

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

How to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.

Dit instructable zal detail how to make van een hoge resolutie NYLON, ABS en PLA mondstuk voor een 3D-Printer.Voor een volledige beschrijving over de bouw van de nieuwe 3D-Printer af te drukken in NYLON, enkel bezoek de belangrijkste instructable:Dit
Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Reverse-Engineering- en 3D-printen van een Lego eerste orde Tie Fighter!

Voordat we beginnen, moet u eerst een Lego eerste orde Tie Fighter voor verwijzingsdoeleinden aanschaffen. U moet ook AutoDesk Inventor op uw computer om te ontwerpen.Stap 1: Beginnen met het maken van de vleugelVervolgens openstellen van AutoDesk In
Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Originele kunstwerken voor een 3D-printer maken: Illustrator naar Tinkercad (SVG)

Ik nam een grote klasse op TechshopSF op geavanceerde 3d printen. De instructeur voorgesteld met behulp van Tinkercad of Meshmixer voor design. Echter werd niets vermeld over het converteren van bestaande illustraties in iets dat Tinkercad aankan (al
Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Reverse-engineering toepassen hulpmiddel van de Schoonmaakbeurt voor optimale computerprestaties

Als u om het even wat als me bent, zou u willen hebben en het nemen van controle over alles op uw computer. U ust kunnen bepalen hoeveel opslag wordt gebruikt voor programma's blah blah blah.Hoewel toepassingen mogelijk nuttig om dingen gedaan te kri
Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Omzetten van een Inkjet-Printer als u wilt afdrukken van PCB's

Zie stap 12 voor nieuwe resultaten en een ETS/PROJECT UPDATE!Onlangs een van mijn richt zich te vinden een manier om de aanmaak van PCB (Printed Circuit Board) gemakkelijker geweest. Ik ontwerp die iets op basis van wat ik wil in een circuit kunnend
Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Complete newbie stap voor stap, 3D-printer met alle onderdelen lijsten

Intro, prelude, of gewoon: die is dit bedoeld voor?Ik wilde de titel op te nemen goedkoop, maar laten we eerlijk zijn: het is niet goedkoop om te bouwen van een 3D-printer, tenzij u sommige/allermeest naar de onderdelen bij de hand hebben of als u ge
Beheersing van een 3D-printer met handgebaren

Beheersing van een 3D-printer met handgebaren

ik heb geschreven over het vóór maar ik beheren een creatieve technologie lab aan het California College van de kunsten. Ik helpen studenten met een breed scala aan vaardigheden, het maken van een breed scala van projecten. Een van de vele onderdelen
Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
Een werkende sleutel van schroot maken door reverse-engineering van een sluis

Een werkende sleutel van schroot maken door reverse-engineering van een sluis

heb je verloren alle sleutels voor uw lock en moeten maken van een nieuwe sleutel van kras?  Heeft de slotenmaker gebrek een lege sleutel die van uw slot Spiebaan passen zal? Pak een metalen bestand, sommige blad schroot, en lees verder voor een ruwe
Reverse Engineering een schrikdraad lader

Reverse Engineering een schrikdraad lader

Reverse-engineering iets kunnen een grote vorm van zowel entertainment en onderwijs.  Ik heb vaak inkoopartikelen net voor de bevrediging van de demontage van hen om te bepalen hoe zij functioneren en hoe ze zijn ontworpen.  Langs de weg, kunt u verb
De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

De spion oor Hack en leren om Reverse-engineering toepassen op een Circuit

dit instructable introduceert het eerbiedwaardige spion oor in details en mijn weg naar het omgekeerde ingenieur een circuit.Waarom wordt dit apparaat verdient zijn eigen instructable?:-U kunt kopen een spion oor voor een dollar!-Het kan geluiden ver
Reverse luchtstroom mondstuk voor een luchtcompressor

Reverse luchtstroom mondstuk voor een luchtcompressor

Dus na het bekijken van een video over het reinigen van uw droger ventilatieopeningen ging ik op zoek naar een bijlage voor het einde van mijn luchtcompressor. Een bijlage van reverse luchtstroom die is verbonden met het einde van uw compressor lucht
Hoe reverse-engineering een schematische voorstelling van een circuit bord

Hoe reverse-engineering een schematische voorstelling van een circuit bord

dit project is een resultaat van hoeft te een binnenlandse elektronische serviceartikel zonder zijnde kundig voor het verkrijgen van een schakeldiagram.Het proces bleek zeer lange en moeizame, maar ook zeer de moeite waard.  De stappen die hier worde