Manejo de un LCD 16x2 #include <wiringPi.h> #include <lcd.h> #include <stdio.h> #include <stdlib.h> //#include <stdint.h> #ifndef TRUE # define # define #endif TRUE FALSE (1==1) (1==2) static void waitForEnter (void) { printf ("Press ENTER to continue: ") ; (void)fgetc (stdin) ; } void pingPong (int lcd, int cols, int repeat) { int position = 0 ; int dir = 0 ; int i; for(i=0; i<repeat*cols; i++){ if (dir == 0) dir = 1 ; lcdPosition lcdPutchar lcdPosition lcdPutchar //return ; } { (lcd, (lcd, (lcd, (lcd, 0, 0) ; '*') ; cols-1, 1) ; '*') ; lcdPosition (lcd, position, 0) ; lcdPutchar (lcd, ' ') ; lcdPosition (lcd, (cols-1)-position, 1) ; lcdPutchar (lcd, ' ') ; position += dir ; if (position == cols) { dir = -1 ; --position ; } if (position < 0) dir = 1 ; ++position ; } { lcdPosition (lcd, position, 0) ; lcdPutchar (lcd, '*') ; lcdPosition (lcd, (cols-1)-position, 1) ; lcdPutchar (lcd, '*') ; delay(200); } } int main(){ int fd; // (rows, cols, mode, RS, STR, d0, d1, d2, d3, d4, d5, d6, d7) fd = lcdInit (2, 16, 4, 11, 10, 4, 5, 6, 7, 0, 0, 0, 0) ; if (fd < 0) { fprintf (stderr, "lcdInit failed\n") ; exit(EXIT_FAILURE) ; } wiringPiSetup () ; lcdClear(fd); lcdHome(fd); lcdCursor(fd, FALSE); lcdPosition (fd, 0, 0) ; lcdPuts (fd, "Prueba") ; lcdPosition (fd, 0, 1) ; lcdPuts (fd, " Errgabo 2014 :)") ; waitForEnter(); lcdClear(fd); pingPong(fd, 16,4); lcdClear(fd); lcdPosition (fd, 0, 0) ; lcdPuts (fd, "======FIN======") ; return(EXIT_SUCCESS); }