void update_display() { // update display LCDclear(); for(int i=0; i<linebuff.size(); i++) LCDdrawstring(0, i*8, (char*)linebuff[i].c_str()); // drawing buttom line for (int i=0; i<83; i+=2) LCDdrawline(i, 40, i, 40, BLACK); // drawing battery LCDdrawrect(70, 42, 12, 5, BLACK); LCDdrawrect(81, 43, 3, 3, BLACK); // battery charge state battery_level = (battery_level>100) ? 100 : battery_level; battery_level = (battery_level<0) ? 0 : battery_level; LCDfillrect(70, 43, battery_level/10+1, 4, BLACK); // battery plugged state if(battery_plugged) { LCDdrawline(66, 43, 68, 43, BLACK); LCDdrawline(66, 45, 68, 45, BLACK); LCDfillrect(63, 42, 3, 5, BLACK); LCDfillrect(61, 43, 2, 3, BLACK); LCDdrawline(58, 44, 61, 44, BLACK); LCDdrawline(56, 45, 58, 45, BLACK); } }
static int screen_update(screen_t *scp) { LCDdrawstring(0, 0, scp->sc_line1_buf); LCDdrawline(0, 10, 83, 10, BLACK); if (scp->sc_line2_buf[0] != '\0') LCDdrawstring(0, 12, scp->sc_line2_buf); if (scp->sc_line3_buf[0] != '\0') LCDdrawstring(0, 20, scp->sc_line3_buf); if (scp->sc_line4_buf[0] != '\0') LCDdrawstring(0, 28, scp->sc_line4_buf); LCDdisplay(); return (0); }
void lcdDisplayProfile(struct sGENERAL perfil){ //while(GPIORead(changeDisplay)!=HIGH){ char Nokia_Nome[25],Nokia_Genero[10],Nokia_Idade[10]; unsigned int idade = perfil.Age; snprintf(Nokia_Nome,25,"Nome:%s",perfil.Name); snprintf(Nokia_Genero,10,"Genero:%s",perfil.Sex); snprintf(Nokia_Idade,10,"Idade:%d",perfil.Age); LCDclear(); LCDdrawstring(25,0,"PERFIL"); LCDdrawline(0, 9, 83, 9, BLACK); LCDdrawstring(0,11,Nokia_Nome); LCDdrawstring(0,29,Nokia_Genero); LCDdrawstring(0,39,Nokia_Idade); LCDdisplay(); //} }
int main (void) { // print infos printf("Raspberry Pi PCD8544 sysinfo display\n"); printf("========================================\n"); // check wiringPi setup if (wiringPiSetup() == -1) { printf("wiringPi-Error\n"); exit(1); } // init and clear lcd LCDInit(_sclk, _din, _dc, _cs, _rst, contrast); LCDclear(); // show logo LCDshowLogo(); delay(2000); for (;;) { // clear lcd LCDclear(); // get system usage / info struct sysinfo sys_info; if(sysinfo(&sys_info) != 0) { printf("sysinfo-Error\n"); } // uptime char uptimeInfo[15]; unsigned long uptime = sys_info.uptime / 60; sprintf(uptimeInfo, "Uptime %ld min.", uptime); // cpu info char cpuInfo[10]; unsigned long avgCpuLoad = sys_info.loads[0] / 1000; sprintf(cpuInfo, "CPU %ld%%", avgCpuLoad); // ram info char ramInfo[10]; unsigned long totalRam = sys_info.freeram / 1024 / 1024; sprintf(ramInfo, "RAM %ld MB", totalRam); // build screen //LCDdrawstring(0, 0, "Raspberry Pi:"); LCDdrawstring(0, 0, "Sunfounder.com"); LCDdrawline(0, 10, 83, 10, BLACK); LCDdrawstring(0, 12, uptimeInfo); LCDdrawstring(0, 20, cpuInfo); LCDdrawstring(0, 28, ramInfo); LCDdisplay(); delay(1000); } //for (;;){ // printf("LED On\n"); // digitalWrite(pin, 1); // delay(250); // printf("LED Off\n"); // digitalWrite(pin, 0); // delay(250); //} return 0; }
int main (void) { // print infos printf("Raspberry Pi PCD8544 test\n"); printf("========================================\n"); printf("CLK on Port %i \n", _sclk); printf("DIN on Port %i \n", _din); printf("DC on Port %i \n", _dc); printf("CS on Port %i \n", _cs); printf("RST on Port %i \n", _rst); printf("========================================\n"); // check wiringPi setup if (wiringPiSetup() == -1) { printf("wiringPi-Error\n"); exit(1); } // init and clear lcd LCDInit(_sclk, _din, _dc, _cs, _rst, contrast); LCDclear(); // turn all the pixels on (a handy test) printf("Test: All pixels on.\n"); LCDcommand(PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYALLON); delay(1000); // back to normal printf("Test: All pixels off.\n"); LCDcommand(PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYNORMAL); LCDclear(); // display logo printf("Test: Display logo.\n"); LCDshowLogo(); delay(2000); LCDclear(); // draw a single pixel printf("Test: Display single pixel.\n"); LCDsetPixel(10, 10, BLACK); LCDdisplay(); delay(2000); LCDclear(); // draw many lines printf("Test: Draw many lines.\n"); int i; for (i=0; i<84; i+=4) { LCDdrawline(0, 0, i, 47, BLACK); } for (i=0; i<48; i+=4) { LCDdrawline(0, 0, 83, i, BLACK); } LCDdisplay(); delay(2000); LCDclear(); // draw rectangles printf("Test: Draw rectangles.\n"); for (i=0; i<48; i+=2) { LCDdrawrect(i, i, 96-i, 48-i, BLACK); } LCDdisplay(); delay(2000); LCDclear(); // draw multiple rectangles printf("Test: Draw multiple rectangles.\n"); for (i=0; i<48; i++) { // alternate colors for moire effect LCDfillrect(i, i, 84-i, 48-i, i%2); } LCDdisplay(); delay(2000); LCDclear(); // draw mulitple circles printf("Test: Draw multiple circles.\n"); for (i=0; i<48; i+=2) { LCDdrawcircle(41, 23, i, BLACK); } LCDdisplay(); delay(2000); LCDclear(); // draw the first ~120 characters in the font printf("Test: Draw the first ~120 chars.\n"); for (i=0; i < 64; i++) { LCDdrawchar((i % 14) * 6, (i/14) * 8, i); } LCDdisplay(); delay(2000); for (i=0; i < 64; i++) { LCDdrawchar((i % 14) * 6, (i/14) * 8, i + 64); } LCDdisplay(); delay(2000); LCDclear(); return 0; }