www.pudn.com > hf44b0_TEST.rar > kb.C
#include#include "..\inc\def.h" #include "..\inc\44b.h" #include "..\inc\44blib.h" #include "..\inc\kb.h" #include "..\inc\option.h" #include "..\inc\def.h" #include "..\inc\lcd.h" #include "..\inc\lcdlib.h" #include "..\inc\44blcd.h" #include "..\inc\myplmm.h" //#define LOOP 1 #define XTOTAL 320 #define YTOTAL 240 #define EVERYX 32 #define HIGHB 32 ; void clr_pf(char onebit); void setb_pf(char onebit); void displaylcd(char num); void displaylcd32(char x, char y, char num); void clear(void); void Lcd_kb_MonoInit(void); void Lcd_MonoInit(void); void __irq keyboard(void); void __irq keyboard(void) { char x=0,y=0,yrecord; rINTMSK=(BIT_GLOBAL|BIT_EINT4567); Delay(200); rEXTINPND=0xf; if((rPDATE&0xf0)==0xf0) { rPDATF=0X1f; rINTMSK=~(BIT_GLOBAL|BIT_EINT4567); rI_ISPC = BIT_EINT4567; return; } else { for (x=5; x<9; x++) { rPDATG=0X1ff; clr_pf(x); if ((rPDATG&0xf0) !=0xf0) { yrecord=(~((rPDATG&0xf0)>>4))&0xf; for (y=0; yrecord!=0; y++) { yrecord=(yrecord>>1); } setb_pf(x); Uart_Printf("the key is %d \n", (y+(x-5)*4-1)); Slib_SetCursor(6,3); Slib_Printf("the key is %d", (y+(x-5)*4-1)); Delay(100); switch(y+(x-5)*4-1) { case 0: displaylcd32(60, 60, y+(x-5)*4-1); break; default: displaylcd32(60, 60, y+(x-5)*4-1); break; } rPDATG=0X1F; rINTMSK=~(BIT_GLOBAL|BIT_EINT4567); rI_ISPC = BIT_EINT4567; return; } setb_pf(x); } rPDATF=0X1F; rINTMSK=~(BIT_GLOBAL|BIT_EINT4567); rI_ISPC = BIT_EINT4567; return; } } /*********************************************************/ void setb_pf(char onebit) { rPCONF=(rPCONF&0x03ff)|(1<<10)|(1<<13)|(1<<16)|(1<<19) ; rPDATF=(rPDATF&0x1ff)|(0x1< >22)<<21 ) | M5D((U32)frameBuffer1>>1); // monochrome, LCDBANK, LCDBASEU rLCDSADDR2= M5D( (((U32)frameBuffer1+(SCR_XSIZE*LCD_YSIZE/8))>>1) ) | (MVAL<<21); rLCDSADDR3= (LCD_XSIZE/16) | ( ((SCR_XSIZE-LCD_XSIZE)/16)<<9 ); rLCDCON1=(1)|(1<<5)|(0<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_MONO<<12); // enable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk, } void displaylcd32(char x, char y, char num) { unsigned int *pbuffer,temp_data; unsigned int i=0, j=0, m=0; //clrscreen(); pbuffer =(U32*) frameBuffer1; for(m=0; m >(EVERYX- x%EVERYX))<<(EVERYX-x%EVERYX); pbuffer[i]=j|(temp_data>>(x%EVERYX)); //Uart_Printf("pbuffer[%d]= %x \n", i, pbuffer[i]); j=(pbuffer[i+1]<<(x%EVERYX))>>(x%EVERYX); pbuffer[i+1] = j|(temp_data<<(EVERYX-x%EVERYX)); // ~temp_data; // Uart_Printf("pbuffer[%d]= %x \n", i+1, pbuffer[i+1]); } } void clear(void) { unsigned int *pbuffer; int i; pbuffer =(U32*) frameBuffer1; for(i = 0; i< (9600/4) ;i++) { pbuffer[i] = 0; } }