void IniLCDMem(void) { Send2(cmdTxtHome,TxtHomeAddr); Send2(cmdGrfHome,GrfHomeAddr); Send2(cmdTxtArea,TxtArea); Send2(cmdGrfArea,GrfArea); SendCmd(cmdModeEXOR); Send2(cmdOffSet,OffSet); SendCmd(cmdTxtOnGrafOff); // SendCmd(cmdTxtOnGrafOn); SendSim(DTire,(SUM_LINE_DISP-2)); //= if (x_menu) SendSim(Tire,1); }
void Video(void) { uchar CurRow,CurCol; // if (CheckKeyboardXMEGA()) return; if (GrafView) { GrafView--; if (!GrafView) ClearGraf(); else return; } IniLCDMem(); TimeToBuf(); //---- output CharSet ---------------- SendBlock(&buf[0],TxtHomeAddr,DisplCols); SendBlock(&buf[Str2],TxtHomeAddr+DisplCols*2,DisplCols*(SUM_LINE_DISP-4)); if(Menu) SendCmd(cmd8LineCurs); else SendCmd(cmd3LineCurs); //-- установить курсор -- CurCol=(AdinB+Mark) % DisplCols; CurRow=(AdinB+Mark) / DisplCols;// + 2; Send2(cmdPozCurs,((int)CurRow * 256)+ CurCol); //0x0101); VideoSost(); }
//.......Function running on thread....... The Dispatcher. bool Sender::WorkerThread() { while (true) { Message msg = SendQ_.deQ(); Send1(msg); Send2(msg); Send3(msg); Send4(msg); } Verbose::show("Send thread stopping"); return true; }
void ClearGraf(void){ int i; InitLCD(); Send2(cmdAddrPtr,GrfHomeAddr); SendCmd(cmdOnAutoWr); //---- очистка графического экрана ------- for(i=0; i < 40*64; i++) { ReadStatus(8); // CLREA; LCD_DATA_OUT(0); ClrCMD; ClrCE; //Разрешение записи в дисплей ClrWR; Delay(1); SetWR; SetCE; //Запрещение записи в дисплей // SETEA; } SendCmd(cmdOffAuto); }
void SendSim(char vSim, char NumStr){ char vDisplCols; vDisplCols=DisplCols; Send2(cmdAddrPtr,TxtHomeAddr+NumStr*DisplCols); SendCmd(cmdOnAutoWr); while (vDisplCols--) { ReadStatus(8); // CLREA; LCD_DATA_OUT(vSim); ClrCMD; ClrCE; //Разрешение записи в дисплей ClrWR; Delay(1); SetWR; SetCE; //Запрещение записи в дисплей // SETEA; } SendCmd(cmdOffAuto); }
void SendBlockPM(char *Src, int Dst, int Size){ char ch; Send2(cmdAddrPtr,Dst); SendCmd(cmdOnAutoWr); while (Size--) { ch=Src - 0x20; Src++; ReadStatus(8); // CLREA; LCD_DATA_OUT(ch); ClrCMD; ClrCE; //Разрешение записи в дисплей ClrWR; Delay(1); SetWR; SetCE; //Запрещение записи в дисплей // SETEA; } SendCmd(cmdOffAuto); }
void SendFirstScreen(char tmSec){ int i; if(!tmSec) return; GrafView=tmSec; SendCmd(cmdTxtOffGrafOn); Send2(cmdAddrPtr,GrfHomeAddr); SendCmd(cmdOnAutoWr); for(i=0; i < 40*64; i++) { ReadStatus(8); // CLREA; LCD_DATA_OUT(FirstScreen[i]); ClrCMD; ClrCE; //Разрешение записи в дисплей ClrWR; Delay(1); SetWR; SetCE; //Запрещение записи в дисплей // SETEA; } SendCmd(cmdOffAuto); }