// simpel test af kerne #include #include "LCD_driver.h" #define FOREVER 1 void wait(void) { long i=0; for(i=0;i<1500;i++); // delay } setdata(){ PAOUT |= 0x80; wait(); } clrdata(){ PAOUT &= 0x7f; wait(); } setclk(){ PAOUT |= 0x40; wait(); } clrclk(){ PAOUT &= 0xbf; wait(); } void ByteOut(unsigned char d){ unsigned char m = 128; while (m){ if (m & d){ setdata(); }else{ clrdata(); } setclk(); clrclk(); m = m / 2; } setdata(); //ack setclk(); clrclk(); } void addrparport(void) { /* adresser parallelport komponent */ /* adresser parallelport komponent */ // putch('s'); clrdata();//start clrclk(); // putch('7'); clrdata();//a6 0 setclk(); clrclk(); // putch('6'); setdata();//a5 1 setclk(); clrclk(); // putch('5'); // clrdata();//a4 0 setclk(); clrclk(); // putch('4'); // clrdata();//a3 0 setclk(); clrclk(); // putch('3'); clrdata();//a2 0 setclk(); clrclk(); // putch('2'); clrdata();//a1 0 setclk(); clrclk(); // putch('1'); clrdata();//a0 0 setclk(); clrclk(); // putch('w'); clrdata();// R/_W setclk(); clrclk(); // putch('a'); setdata();//ack setclk();//ack should pull down data while ((PAIN & 0x80) != 0) { ; //vent påav } putch('L'); //data er lav ..hurra ack er modtaget clrclk(); } AllZero(){ clrdata(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setclk(); clrclk(); setdata();//ack setclk();//ack should pull down data while ((PAIN & 0x80) != 0) { ; //vent påav } putch('L'); //data er lav ..hurra ack er modtaget clrclk(); } InitI2C() { // set to open drain !!!!!! PAADDR = 0x01; //datadirection PACTL = 0x3f; PAADDR = 0x00; PAADDR = 0x03; //outputcontrol PACTL = 0xc0; PAADDR = 0x00; // PA7 til sda // PA6 til scl // pin47 og pin45 påJP2 setclk(); setdata(); wait(); wait(); wait(); wait(); } main() { putch('s'); // initialisering af port PC bit 0 input PCADDR=1; //data direction PCCTL=0x0f; // is set to input for lower 4 bits PCADDR=0; //set back PCADDR InitI2C(); addrparport(); while (1){ ByteOut(8); ByteOut(4); ByteOut(2); ByteOut(1); ByteOut(2); ByteOut(4); } }