#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <wiringPi.h>
#include <lcd.h>
/*
cc -o lcd lcd.c -lwiringPi -lwiringPiDev
*/
#define SP 0x20
void lcdNumber(int fd_lcd, int num, int pos) {
int pat[60] = { 1, 2, 0, 1, 3,
0, //0
SP,SP, 0,SP,SP, 0, //1
5, 4, 0, 1, 3, 3, //2
5, 4, 0, 7, 3, 0, //3
1, 3, 0,SP,SP, 0, //4
1, 4, 6, 7, 3, 0, //5
1, 4, 6, 1, 3, 0, //6
1, 2, 0,SP,SP, 0, //7
1, 4, 0, 1, 3, 0, //8
1, 4, 0, 7, 3, 0}; //9
if(num < 0 || num > 9) return;
lcdPosition(fd_lcd, pos, 0);
lcdPutchar(fd_lcd, pat[num*6]);
lcdPosition(fd_lcd, pos+1, 0);
lcdPutchar(fd_lcd, pat[num*6+1]);
lcdPosition(fd_lcd, pos+2, 0);
lcdPutchar(fd_lcd, pat[num*6+2]);
lcdPosition(fd_lcd, pos, 1);
lcdPutchar(fd_lcd, pat[num*6+3]);
lcdPosition(fd_lcd, pos+1, 1);
lcdPutchar(fd_lcd, pat[num*6+4]);
lcdPosition(fd_lcd, pos+2, 1);
lcdPutchar(fd_lcd, pat[num*6+5]);
}
int main(int argc, char **argv) {
int fd_lcd;
int i;
char level0[8] = { 0b11100, 0b11110,
0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11100};
char level1[8] = { 0b00111, 0b01111,
0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b00111};
char level2[8] = { 0b11111, 0b11111,
0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000};
char level3[8] = { 0b00000, 0b00000,
0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111};
char level4[8] = { 0b11111, 0b11111,
0b00000, 0b00000, 0b00000, 0b00000, 0b11111, 0b11111};
char level5[8] = { 0b01111, 0b00111,
0b00000, 0b00000, 0b00000, 0b00000, 0b00011, 0b00111};
char level6[8] = { 0b11110, 0b11100,
0b00000, 0b00000, 0b00000, 0b00000, 0b11000, 0b11100};
char level7[8] = { 0b00000, 0b00000,
0b00000, 0b00000, 0b00000, 0b00000, 0b00111, 0b01111};
if(wiringPiSetup() == -1) {
printf("Setup
Fail\n");
exit(1);
}
fd_lcd =
lcdInit(2,16,4,4,5,0,1,2,3,0,0,0,0);
lcdCharDef(fd_lcd, 0, level0);
lcdCharDef(fd_lcd, 1, level1);
lcdCharDef(fd_lcd, 2, level2);
lcdCharDef(fd_lcd, 3, level3);
lcdCharDef(fd_lcd, 4, level4);
lcdCharDef(fd_lcd, 5, level5);
lcdCharDef(fd_lcd, 6, level6);
lcdCharDef(fd_lcd, 7, level7);
lcdPosition(fd_lcd, 0,0);
for (i = 0; i < 8; i++){
lcdPosition(fd_lcd, i, 0);
lcdPutchar(fd_lcd, i);
}
getchar();
lcdNumber(fd_lcd,0,0);
lcdNumber(fd_lcd,1,3);
lcdNumber(fd_lcd,2,6);
lcdNumber(fd_lcd,3,9);
lcdNumber(fd_lcd,4,12);
getchar();
lcdNumber(fd_lcd,5,0);
lcdNumber(fd_lcd,6,3);
lcdNumber(fd_lcd,7,6);
lcdNumber(fd_lcd,8,9);
lcdNumber(fd_lcd,9,12);
}
|