test program for LcdWindow library

Dependencies:   LcdWindow TextLCD mbed

main.cpp

Committer:
hlipka
Date:
2014-10-14
Revision:
1:b67e28ff53fd
Parent:
main.c@ 0:0373f81f93d9

File content as of revision 1:b67e28ff53fd:

#include "mbed.h"
 
#include "dogm_spi.h"
 
#include "hd44780_8bit.h"
 
#include "subwindow.h"
 
#include "teewindow.h"
 
#include "terminal.h"
 
#include "multiwindow.h"
 
int main( void ) {
 
    // create an instance for the HD44780 display (2 lines, 16 chars)
 
    BusOut *data=new BusOut(p21,p22,p23,p24,p25,p26,p27,p28);
 
    HD44780LCD8bit* lcd1=new HD44780LCD8bit(16,2,data, p20, p19);
 
    lcd1->init();
 
    // and write the usual hello world
 
    lcd1->writeText(0,0,"hello");
 
    lcd1->writeText(1,4,"world");
 
    // create a LCD instance for the dogm162 display
 
    DogmLCDSPI* lcd2=new DogmLCDSPI(
 
        16, // width
 
        2,  // height
 
        new SPI(p5, NC, p7), // dataOut, no dataIn, clock
 
        p9, // enable
 
        p8  // RS
 
    );
 
    lcd2->init();
 
    // and write the german hello world
 
    lcd2->writeText(0,0,"hallo");
 
    lcd2->writeText(1,4,"welt!");
 
    // create a sub window on each display, spanning the right half of the displays
 
    SubWindow *w1=new SubWindow(lcd1,8,0,8,2);
 
    SubWindow *w2=new SubWindow(lcd2,8,0,8,2);
 
    // create avector of all sub windows, for later use
 
    vector<Window*> lcds;
 
    lcds.push_back(w1);
 
    lcds.push_back(w2);
 
 
    // the tee window will write to both sub windows at once
 
    Window* tw=new TeeWindow(lcds);
 
 
    // so write to both display at the same time
 
    tw->writeText(0,0,"00");
 
    tw->writeText(1,1,"11");
 
    wait(1);
 
 
    // create a terminal which also is dulicated to both displays
 
    // write some text to it and scroll
 
    Terminal t(tw);
 
    t.clear();
 
    t.writeText(0,0,"1234");
 
    t.writeText(1,1,"abcd");
 
    wait(1);
 
    t.addText("Hello");
 
    wait(1);
 
    t.addText("World");
 
    wait(1);
 
    t.addText("and");
 
    wait(1);
 
    t.addText("even");
 
    wait(1);
 
    t.addText("some");
 
    wait(1);
 
    t.addText("more");
 
    // create 2 subwindows for the left half of both displays
 
    SubWindow *w3=new SubWindow(lcd1,0,0,8,2);
 
    SubWindow *w4=new SubWindow(lcd2,0,0,8,2);
 
    vector<Window*> lcds2;
 
    lcds2.push_back(w3);
 
    lcds2.push_back(w4);
 
    // create a window spanning both sub windows (and therefore both display)
 
    MultiWindow* mw=new MultiWindow(lcds2);
 
    // and a terminal on it - which means it scrolls across both displays
 
    Terminal t2(mw);
 
    t2.clear();
 
    t2.writeText(0,0,"1234");
 
    t2.writeText(1,1,"abcd");
 
    wait(1);
 
    t2.addText("Hello");
 
    wait(1);
 
    t2.addText("World");
 
    wait(1);
 
    t2.addText("and");
 
    wait(1);
 
    t2.addText("even");
 
    wait(1);
 
    t2.addText("some");
 
    wait(1);
 
    t2.addText("more");
 
}