#include "glcd.h" #define MCKGLCD 48054857 //----------------------------------- unsigned char GLCDCS2,GLCDCS1,GLCDRST,GLCDRS,GLCDE,GLCDDB0,GLCDDB1,GLCDDB2,GLCDDB3,GLCDDB4,GLCDDB5,GLCDDB6,GLCDDB7; //----------------------------------- void glcd_pininit (unsigned char CS2,unsigned char CS1,unsigned char RST,unsigned char RS,unsigned char E ,unsigned char DB0,unsigned char DB1,unsigned char DB2,unsigned char DB3 ,unsigned char DB4,unsigned char DB5,unsigned char DB6,unsigned char DB7) { GLCDCS2 = CS2; GLCDCS1 = CS1; GLCDRST = RST; GLCDRS = RS; GLCDE = E; GLCDDB0 = DB0; GLCDDB1 = DB1; GLCDDB2 = DB2; GLCDDB3 = DB3; GLCDDB4 = DB4; GLCDDB5 = DB5; GLCDDB6 = DB6; GLCDDB7 = DB7; } //--------------------------------------------------------------- void glcd_delay_us (unsigned int time) { unsigned long i,j,k; for (k=0;kPIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_SODR=(1<= 64) { AT91C_BASE_PIOA->PIO_CODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PMC_PCER = ( 1<PIO_PER=(1<PIO_OER=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<0;i--) { AT91C_BASE_PIOA->PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<0;i--) { AT91C_BASE_PIOA->PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<0;i--) { for (j=0;j<2;j++) { if (k==0) { AT91C_BASE_PIOA->PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<=64) { x=0; y++; } glcd_write(x,y,0); x++; } break; case 2: x=64; y=0; for(i=0;i<512;i++) { if(x>=128) { x=64; y++; } glcd_write(x,y,0); x++; } break; case 3: x=0; y=0; for(i=0;i<1024;i++) { if(x>=128) { x=0; y++; } glcd_write(x,y,0); x++; } break; } } //--------------------------------------------------------------- void glcd_display (unsigned char *data,unsigned char selectchip) { unsigned int i,x,y; switch (selectchip) { case 1: x=0; y=0; for(i=0;i<512;i++) { if(x>=64) { x=0; y++; } glcd_write(x,y,data[i]); x++; } break; case 2: x=64; y=0; for(i=0;i<512;i++) { if(x>=128) { x=64; y++; } glcd_write(x,y,data[i]); x++; } break; case 3: x=0; y=0; for(i=0;i<1024;i++) { if(x>=128) { x=0; y++; } glcd_write(x,y,data[i]); x++; } break; } } //--------------------------------------------------------------- void glcd_setpix (unsigned char x,unsigned char y,unsigned char *data) { if (x<128|y<64) { data[(y/8)*128+x]=(1<<(y%8))|data[(y/8)*128+x]; glcd_write(x,(y/8),data[(y/8)*128+x]); } } //--------------------------------------------------------------- void glcd_clrpix (unsigned char x,unsigned char y,unsigned char *data) { if (x<128|y<64) { data[(y/8)*128+x]=(~(1<<(y%8)))&data[(y/8)*128+x]; glcd_write(x,(y/8),data[(y/8)*128+x]); } } //--------------------------------------------------------------- void glcd_displayon (unsigned char selectchip) { switch (selectchip) { case 1: AT91C_BASE_PIOA->PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_CODR=(1<PIO_SODR=(1<PIO_SODR=(1<PIO_CODR=(1<