Hendrik Lipka / Mbed 2 deprecated LcdWindowTest

Dependencies:   LcdWindow TextLCD mbed

Committer:
hlipka
Date:
Tue Oct 14 07:57:41 2014 +0000
Revision:
0:0373f81f93d9
initial version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hlipka 0:0373f81f93d9 1 #include "mbed.h"
hlipka 0:0373f81f93d9 2
hlipka 0:0373f81f93d9 3 #include "dogm_spi.h"
hlipka 0:0373f81f93d9 4
hlipka 0:0373f81f93d9 5 #include "hd44780_8bit.h"
hlipka 0:0373f81f93d9 6
hlipka 0:0373f81f93d9 7 #include "subwindow.h"
hlipka 0:0373f81f93d9 8
hlipka 0:0373f81f93d9 9 #include "teewindow.h"
hlipka 0:0373f81f93d9 10
hlipka 0:0373f81f93d9 11 #include "terminal.h"
hlipka 0:0373f81f93d9 12
hlipka 0:0373f81f93d9 13 #include "multiwindow.h"
hlipka 0:0373f81f93d9 14
hlipka 0:0373f81f93d9 15 int main( void ) {
hlipka 0:0373f81f93d9 16
hlipka 0:0373f81f93d9 17 // create an instance for the HD44780 display (2 lines, 16 chars)
hlipka 0:0373f81f93d9 18
hlipka 0:0373f81f93d9 19 BusOut *data=new BusOut(p21,p22,p23,p24,p25,p26,p27,p28);
hlipka 0:0373f81f93d9 20
hlipka 0:0373f81f93d9 21 HD44780LCD8bit* lcd1=new HD44780LCD8bit(16,2,data, p20, p19);
hlipka 0:0373f81f93d9 22
hlipka 0:0373f81f93d9 23 lcd1->init();
hlipka 0:0373f81f93d9 24
hlipka 0:0373f81f93d9 25 // and write the usual hello world
hlipka 0:0373f81f93d9 26
hlipka 0:0373f81f93d9 27 lcd1->writeText(0,0,"hello");
hlipka 0:0373f81f93d9 28
hlipka 0:0373f81f93d9 29 lcd1->writeText(1,4,"world");
hlipka 0:0373f81f93d9 30
hlipka 0:0373f81f93d9 31 // create a LCD instance for the dogm162 display
hlipka 0:0373f81f93d9 32
hlipka 0:0373f81f93d9 33 DogmLCDSPI* lcd2=new DogmLCDSPI(
hlipka 0:0373f81f93d9 34
hlipka 0:0373f81f93d9 35 16, // width
hlipka 0:0373f81f93d9 36
hlipka 0:0373f81f93d9 37 2, // height
hlipka 0:0373f81f93d9 38
hlipka 0:0373f81f93d9 39 new SPI(p5, NC, p7), // dataOut, no dataIn, clock
hlipka 0:0373f81f93d9 40
hlipka 0:0373f81f93d9 41 p9, // enable
hlipka 0:0373f81f93d9 42
hlipka 0:0373f81f93d9 43 p8 // RS
hlipka 0:0373f81f93d9 44
hlipka 0:0373f81f93d9 45 );
hlipka 0:0373f81f93d9 46
hlipka 0:0373f81f93d9 47 lcd2->init();
hlipka 0:0373f81f93d9 48
hlipka 0:0373f81f93d9 49 // and write the german hello world
hlipka 0:0373f81f93d9 50
hlipka 0:0373f81f93d9 51 lcd2->writeText(0,0,"hallo");
hlipka 0:0373f81f93d9 52
hlipka 0:0373f81f93d9 53 lcd2->writeText(1,4,"welt!");
hlipka 0:0373f81f93d9 54
hlipka 0:0373f81f93d9 55 // create a sub window on each display, spanning the right half of the
hlipka 0:0373f81f93d9 56 displays
hlipka 0:0373f81f93d9 57
hlipka 0:0373f81f93d9 58 SubWindow *w1=new SubWindow(lcd1,8,0,8,2);
hlipka 0:0373f81f93d9 59
hlipka 0:0373f81f93d9 60 SubWindow *w2=new SubWindow(lcd2,8,0,8,2);
hlipka 0:0373f81f93d9 61
hlipka 0:0373f81f93d9 62 // create avector of all sub windows, for later use
hlipka 0:0373f81f93d9 63
hlipka 0:0373f81f93d9 64 vector<Window*> lcds;
hlipka 0:0373f81f93d9 65
hlipka 0:0373f81f93d9 66 lcds.push_back(w1);
hlipka 0:0373f81f93d9 67
hlipka 0:0373f81f93d9 68 lcds.push_back(w2);
hlipka 0:0373f81f93d9 69
hlipka 0:0373f81f93d9 70
hlipka 0:0373f81f93d9 71 // the tee window will write to both sub windows at once
hlipka 0:0373f81f93d9 72
hlipka 0:0373f81f93d9 73 Window* tw=new TeeWindow(lcds);
hlipka 0:0373f81f93d9 74
hlipka 0:0373f81f93d9 75
hlipka 0:0373f81f93d9 76 // so write to both display at the same time
hlipka 0:0373f81f93d9 77
hlipka 0:0373f81f93d9 78 tw->writeText(0,0,"00");
hlipka 0:0373f81f93d9 79
hlipka 0:0373f81f93d9 80 tw->writeText(1,1,"11");
hlipka 0:0373f81f93d9 81
hlipka 0:0373f81f93d9 82 wait(1);
hlipka 0:0373f81f93d9 83
hlipka 0:0373f81f93d9 84
hlipka 0:0373f81f93d9 85 // create a terminal which also is dulicated to both displays
hlipka 0:0373f81f93d9 86
hlipka 0:0373f81f93d9 87 // write some text to it and scroll
hlipka 0:0373f81f93d9 88
hlipka 0:0373f81f93d9 89 Terminal t(tw);
hlipka 0:0373f81f93d9 90
hlipka 0:0373f81f93d9 91 t.clear();
hlipka 0:0373f81f93d9 92
hlipka 0:0373f81f93d9 93 t.writeText(0,0,"1234");
hlipka 0:0373f81f93d9 94
hlipka 0:0373f81f93d9 95 t.writeText(1,1,"abcd");
hlipka 0:0373f81f93d9 96
hlipka 0:0373f81f93d9 97 wait(1);
hlipka 0:0373f81f93d9 98
hlipka 0:0373f81f93d9 99 t.addText("Hello");
hlipka 0:0373f81f93d9 100
hlipka 0:0373f81f93d9 101 wait(1);
hlipka 0:0373f81f93d9 102
hlipka 0:0373f81f93d9 103 t.addText("World");
hlipka 0:0373f81f93d9 104
hlipka 0:0373f81f93d9 105 wait(1);
hlipka 0:0373f81f93d9 106
hlipka 0:0373f81f93d9 107 t.addText("and");
hlipka 0:0373f81f93d9 108
hlipka 0:0373f81f93d9 109 wait(1);
hlipka 0:0373f81f93d9 110
hlipka 0:0373f81f93d9 111 t.addText("even");
hlipka 0:0373f81f93d9 112
hlipka 0:0373f81f93d9 113 wait(1);
hlipka 0:0373f81f93d9 114
hlipka 0:0373f81f93d9 115 t.addText("some");
hlipka 0:0373f81f93d9 116
hlipka 0:0373f81f93d9 117 wait(1);
hlipka 0:0373f81f93d9 118
hlipka 0:0373f81f93d9 119 t.addText("more");
hlipka 0:0373f81f93d9 120
hlipka 0:0373f81f93d9 121 // create 2 subwindows for the left half of both displays
hlipka 0:0373f81f93d9 122
hlipka 0:0373f81f93d9 123 SubWindow *w3=new SubWindow(lcd1,0,0,8,2);
hlipka 0:0373f81f93d9 124
hlipka 0:0373f81f93d9 125 SubWindow *w4=new SubWindow(lcd2,0,0,8,2);
hlipka 0:0373f81f93d9 126
hlipka 0:0373f81f93d9 127 vector<Window*> lcds2;
hlipka 0:0373f81f93d9 128
hlipka 0:0373f81f93d9 129 lcds2.push_back(w3);
hlipka 0:0373f81f93d9 130
hlipka 0:0373f81f93d9 131 lcds2.push_back(w4);
hlipka 0:0373f81f93d9 132
hlipka 0:0373f81f93d9 133 // create a window spanning both sub windows (and therefore both display)
hlipka 0:0373f81f93d9 134
hlipka 0:0373f81f93d9 135 MultiWindow* mw=new MultiWindow(lcds2);
hlipka 0:0373f81f93d9 136
hlipka 0:0373f81f93d9 137 // and a terminal on it - which means it scrolls across both displays
hlipka 0:0373f81f93d9 138
hlipka 0:0373f81f93d9 139 Terminal t2(mw);
hlipka 0:0373f81f93d9 140
hlipka 0:0373f81f93d9 141 t2.clear();
hlipka 0:0373f81f93d9 142
hlipka 0:0373f81f93d9 143 t2.writeText(0,0,"1234");
hlipka 0:0373f81f93d9 144
hlipka 0:0373f81f93d9 145 t2.writeText(1,1,"abcd");
hlipka 0:0373f81f93d9 146
hlipka 0:0373f81f93d9 147 wait(1);
hlipka 0:0373f81f93d9 148
hlipka 0:0373f81f93d9 149 t2.addText("Hello");
hlipka 0:0373f81f93d9 150
hlipka 0:0373f81f93d9 151 wait(1);
hlipka 0:0373f81f93d9 152
hlipka 0:0373f81f93d9 153 t2.addText("World");
hlipka 0:0373f81f93d9 154
hlipka 0:0373f81f93d9 155 wait(1);
hlipka 0:0373f81f93d9 156
hlipka 0:0373f81f93d9 157 t2.addText("and");
hlipka 0:0373f81f93d9 158
hlipka 0:0373f81f93d9 159 wait(1);
hlipka 0:0373f81f93d9 160
hlipka 0:0373f81f93d9 161 t2.addText("even");
hlipka 0:0373f81f93d9 162
hlipka 0:0373f81f93d9 163 wait(1);
hlipka 0:0373f81f93d9 164
hlipka 0:0373f81f93d9 165 t2.addText("some");
hlipka 0:0373f81f93d9 166
hlipka 0:0373f81f93d9 167 wait(1);
hlipka 0:0373f81f93d9 168
hlipka 0:0373f81f93d9 169 t2.addText("more");
hlipka 0:0373f81f93d9 170
hlipka 0:0373f81f93d9 171 }