void displayHZ_at_xyaddr(unsigned char addr,unsigned char hang,unsigned char lie) { unsigned int temp; unsigned char low; unsigned char high; temp=(size_lie/8)*2*(hang-1)+2*(lie-1); //TEXT模式下,TEXT区域被分为 size_hang/8行、size_lie/8列个8X8 点阵 //行地址为0-(size_hang/8-1),列地址 0 - (size_lie/8-1) //注意,本程序的hang 和 lie 都是从 1 开始的,并且是 16X16的 low=temp&0x00ff; high=(temp>>8)&0x00ff; double_byte_parameter(low,high,0x24); no_parameter(0xb0); check_sta3(); wdata(addr);//左上 check_sta3(); wdata(addr+2);//右上 check_sta3(); wcom(0xb2); temp=(size_lie/8)*2*(hang-1)+(size_lie/8)+2*(lie-1);// 下半部分比上半部分的地址多(size_lie/8) low=temp&0x00ff; high=(temp>>8)&0x00ff; double_byte_parameter(low,high,0x24); no_parameter(0xb0); check_sta3(); wdata(addr+1); check_sta3(); wdata(addr+3); check_sta3(); wcom(0xb2); }
void all_display(unsigned char state,unsigned char vlue) { unsigned int i; if(state==0) { double_byte_parameter(text_startaddr_l,text_startaddr_h,0x24); no_parameter(0xb0); for(i=textsize;i>0;i--) { check_sta3(); wdata(vlue); } check_sta3(); wcom(0xb2); } else { double_byte_parameter(graphic_startaddr_l,graphic_startaddr_h,0x24); no_parameter(0xb0); for(i=graphicsize;i>0;i--) { check_sta3(); wdata(vlue); } check_sta3(); wcom(0xb2); } }
void double_byte_parameter(unsigned char coma,unsigned char comb,unsigned char data_b) { check_sta01(); wdata(coma); check_sta01(); wdata(comb); check_sta01(); wcom(data_b); }
//graphic 格式下显示8HO字符 void display_8HO(unsigned char *q)//显示字符,三种字符的数量按照 3:2:3的比例显示, { unsigned int count_byte,count_row,count_page,page; for(count_row=7;count_row>3;count_row--)//共七种字符形式 { double_byte_parameter(graphic_startaddr_l,graphic_startaddr_h,0x24);// 从GRAPHIC 的首地址开始写 no_parameter(0xb0);//自动写 for(page=1;page<=((size_hang*3/8)/8);page++)// 3/8屏 { s=q; for(count_byte=8;count_byte>0;count_byte--)//共 8 行,组成一个 8 X 8 字符 { for(count_page=(size_lie/8);count_page>0;count_page--)//写一行,共(size_lie/8)列 { check_sta3(); wdata(*s); } s++; } } for(page=1;page<=((size_hang*2/8)/8);page++)// 2/8 { s=q; s=s+8; for(count_byte=8;count_byte>0;count_byte--)//每页 8 行,8 X 8 点阵 { for(count_page=(size_lie/8);count_page>0;count_page--)//30X8列 { check_sta3(); wdata(*s); } s++; } } for(page=1;page<=((size_hang*3/8)/8);page++)// 3/8 { s=q; s=s+16; for(count_byte=8;count_byte>0;count_byte--)//每页 8 行,8 X 8 点阵 { for(count_page=(size_lie/8);count_page>0;count_page--)//30X8列 { check_sta3(); wdata(*s); } s++; } } check_sta3(); wcom(0xb2);//退出自动写 } }
void show(unsigned char ge, unsigned char shifen, unsigned char baifen) { wcode(0x80); wword("The volt now is:"); wcode(0xCB); wdata(ge+0x30); wdata('.'); wdata(shifen+0x30); wdata(baifen+0x30); wdata('V'); }
void wword(unsigned char *word) { while(*word) { wdata(*word++); //word ++; } }
void LCD_CMD_SET_COLUMN(unsigned char colu_add) { if(DATA_D7_D0) { wdata((((colu_add+4)>>4)&0x0f)|0x10, INVERT_OFF); wdata((colu_add+4)&0x0f, INVERT_OFF); } else {
/******************************************************************** * 名称 : L1602_char(uchar hang,uchar lie,char sign) * 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符显示"b" ,调用该函数如下 L1602_char(1,5,'b') * 输入 : 行,列,需要输入1602的数据 * 输出 : 无 ***********************************************************************/ void L1602_char(uchar hang,uchar lie,char sign) { uchar a; if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie - 1; wcmd(a); wdata(sign); }
void CGRAM(void) { unsigned int m=0; double_byte_parameter(0x07,0x00,0x22); //设定最高的 1K为 CGRAM double_byte_parameter(0x00,0x3c,0x24); // no_parameter(0xb0); for(m=0;m<992;m++) { check_sta3(); wdata(CGTAB[m]); } check_sta3(); wcom(0xb2); }
/******************************************************************** * 名称 : L1602_string(uchar hang,uchar lie,uchar *p) * 功能 : 改变液晶中某位的值,如果要让第一行,第五个字符开始显示"ab cd ef" ,调用该函数如下 L1602_string(1,5,"ab cd ef;") * 输入 : 行,列,需要输入1602的数据 * 输出 : 无 ***********************************************************************/ void L1602_string(uchar hang,uchar lie,uchar *p) { uchar a,b=0; if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie - 1; while(1) { wcmd(a++); if((*p == '\0')||(b==16)) break; b++; wdata(*p); p++; } }
void display_map(unsigned char *p) { unsigned char m,n; double_byte_parameter(graphic_startaddr_l,graphic_startaddr_h,0x24); no_parameter(0xb0); for(m=size_hang;m>0;m--)//共size_hang行 { for(n=(size_lie/8);n>0;n--)//size_lie/8列 { check_sta3(); wdata(*p++); } } check_sta3(); wcom(0xb2); }
void display_ascii(unsigned char *addr,unsigned char hang,unsigned char lie) { unsigned int temp;// unsigned char low; unsigned char high; temp=(size_lie/8)*(hang-1)+(lie-1); //TEXT模式下,TEXT区域被分为 size_hang/8行、size_lie/8列个8X8 点阵 //行地址为0-(size_hang/8-1),列地址 0 - (size_lie/8-1) //注意,本程序的hang 和 lie 都是从1 开始的 low=temp&0x00ff; high=(temp>>8)&0x00ff; double_byte_parameter(low,high,0x24); no_parameter(0xb0);// check_sta3(); wdata(*addr);//addr:CGRAM OR CGROM中字符的地址 check_sta3(); wcom(0xb2);// }
void ProxyPlugin::clientData(TCPClient *client, ProxyData &cdata) { for (unsigned i = 1;; i++){ const char *proxyCfg = getClients(i); if ((proxyCfg == NULL) || (*proxyCfg == 0)) break; ProxyData wdata(proxyCfg); if (wdata.Client.ptr && (clientName(client) == wdata.Client.ptr)){ cdata = wdata; cdata.Default.bValue = false; set_str(&cdata.Client.ptr, clientName(client).c_str()); return; } } cdata = data; set_str(&cdata.Client.ptr, clientName(client).c_str()); cdata.Default.bValue = true; clear_list(&cdata.Clients); }
int RogueSaveManager::Save(const int num, BaseSaveData* savedata) { const string wfilename(GetFileName(num)); std::ofstream ofs(wfilename, ios::out | ios::binary | ios::trunc); RogueSaveData* wdata(static_cast<RogueSaveData*>(savedata)); Sizes[num] = sizeof(*wdata); ofs.write((char *)(wdata), sizeof(*wdata)); //// ファイルに1行ずつ書き込み //for (int i = 0; i < game.opparty.maxmember; ++i) //{ // OpChara *opchara = static_cast<OpChara*>(game.GetMember(i)); // if (opchara) { // ofs << to_string(opchara->exp) << std::endl; // ofs << to_string(opchara->id) << std::endl; // } // else { // ofs <<"M" << std::endl; // } //} //ofs << "N" << std::endl; //for (int i = 0; i < game.opparty.maxmember; ++i) //{ // MyChara *mychara = static_cast<MyChara*>(game.GetMember(i)); // if (mychara) { // ofs << to_string(mychara->id) << std::endl; // ofs << to_string(mychara->level) << std::endl; // } // else { // ofs << "M" << std::endl; // } //} //ofs << "N" << std::endl; //ofs << "" << std::endl; //ofs << "egg" << std::endl; //ofs << "spam" << std::endl; return 1; }