A test of the lcd library

Dependencies:   lcd mbed

main.cpp

Committer:
mattegan
Date:
2013-11-08
Revision:
1:2b8901be97f9
Parent:
0:b768eecbd7c0

File content as of revision 1:2b8901be97f9:

#include "mbed.h"
#include "lcd.h"

//register select, read/write, enable, (db4,db5,db6,db7)
lcd display(p21, p22, p23, p24, p25, p26, p27);

int main() {
    display.printf("Hello World\n");
    display.printf("Number: %d", 15); 
    
    wait(3);
       
    display.clear();
    
    //these graphics were generated using http://www.quinapalus.com/hd44780udg.html               
    int graphics[8][8] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f},
                          {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f},
                          {0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f},
                          {0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f},
                          {0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f},
                          {0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f},
                          {0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f},
                          {0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f}};
                          
    //define each character, user defined characters are of the values 0 through 7
    for(int i = 0; i < 8; i++) {
        display.defineCharacter(i, graphics[i]);
    }
    
    int glyphs[9] = {0x20, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
    
    int start = 0;
    while(1) {
        for(int i = 0; i < 16; i++) {
            int magnitude = (i + start);
            if(magnitude > 16) {
                magnitude = 32 - magnitude;
            }
            if(magnitude < 0) {
                magnitude = magnitude * -1;
            }
            display.locateCharacter(0, i, magnitude < 9 ? glyphs[0] : glyphs[magnitude - 8]);
            display.locateCharacter(1, i, magnitude > 8 ? glyphs[8] : glyphs[magnitude]);
        }
        start = (start + 1) % 33;
        wait(.03);
    }
}