Craig Evans
/
1620_App_Board_LCD
LCD demo
Fork of 1620_App_Board_LDR by
main.cpp@4:5d40f64a82c1, 2017-03-15 (annotated)
- Committer:
- eencae
- Date:
- Wed Mar 15 09:59:04 2017 +0000
- Revision:
- 4:5d40f64a82c1
- Parent:
- 3:ce5582846693
Initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
eencae | 0:99902f3f1508 | 1 | /* ELEC1620 Application Board Example |
eencae | 0:99902f3f1508 | 2 | |
eencae | 4:5d40f64a82c1 | 3 | LCD |
eencae | 0:99902f3f1508 | 4 | |
eencae | 4:5d40f64a82c1 | 5 | (c) Dr Craig A. Evans, University of Leeds, March 2017 |
eencae | 0:99902f3f1508 | 6 | |
eencae | 0:99902f3f1508 | 7 | */ |
eencae | 0:99902f3f1508 | 8 | |
eencae | 0:99902f3f1508 | 9 | #include "mbed.h" |
eencae | 0:99902f3f1508 | 10 | #include "N5110.h" |
eencae | 0:99902f3f1508 | 11 | |
eencae | 4:5d40f64a82c1 | 12 | // JP1 must be in 2/3 position |
eencae | 0:99902f3f1508 | 13 | N5110 lcd(p8,p9,p10,p11,p13,p21); |
eencae | 0:99902f3f1508 | 14 | |
eencae | 4:5d40f64a82c1 | 15 | const int run[12][10] = { |
eencae | 4:5d40f64a82c1 | 16 | { 0,0,0,0,0,1,1,1,0,0 }, |
eencae | 4:5d40f64a82c1 | 17 | { 0,0,0,0,0,1,1,1,0,0 }, |
eencae | 4:5d40f64a82c1 | 18 | { 0,0,0,1,1,1,1,0,0,0 }, |
eencae | 4:5d40f64a82c1 | 19 | { 0,0,1,1,1,1,0,1,0,0 }, |
eencae | 4:5d40f64a82c1 | 20 | { 0,1,1,0,1,1,0,1,1,1 }, |
eencae | 4:5d40f64a82c1 | 21 | { 1,0,0,0,1,1,0,0,0,0 }, |
eencae | 4:5d40f64a82c1 | 22 | { 0,0,0,1,1,1,1,0,0,0 }, |
eencae | 4:5d40f64a82c1 | 23 | { 0,0,1,1,0,0,1,1,0,0 }, |
eencae | 4:5d40f64a82c1 | 24 | { 1,1,1,1,0,0,0,1,1,0 }, |
eencae | 4:5d40f64a82c1 | 25 | { 0,0,0,0,0,0,1,1,0,0 }, |
eencae | 4:5d40f64a82c1 | 26 | { 0,0,0,0,0,1,1,0,0,0 }, |
eencae | 4:5d40f64a82c1 | 27 | { 0,0,0,0,1,1,0,0,0,0 }, |
eencae | 0:99902f3f1508 | 28 | |
eencae | 4:5d40f64a82c1 | 29 | |
eencae | 4:5d40f64a82c1 | 30 | }; |
eencae | 4:5d40f64a82c1 | 31 | |
eencae | 4:5d40f64a82c1 | 32 | int main() |
eencae | 4:5d40f64a82c1 | 33 | { |
eencae | 4:5d40f64a82c1 | 34 | |
eencae | 4:5d40f64a82c1 | 35 | // need to initialise the lcd first, do this once outside of the loop |
eencae | 4:5d40f64a82c1 | 36 | lcd.init(); |
eencae | 0:99902f3f1508 | 37 | |
eencae | 4:5d40f64a82c1 | 38 | int x = 0; // starting position |
eencae | 4:5d40f64a82c1 | 39 | |
eencae | 0:99902f3f1508 | 40 | while(1) { |
eencae | 4:5d40f64a82c1 | 41 | |
eencae | 4:5d40f64a82c1 | 42 | // clear the display at the start of the loop |
eencae | 2:1c669cb14c5b | 43 | lcd.clear(); |
eencae | 4:5d40f64a82c1 | 44 | |
eencae | 4:5d40f64a82c1 | 45 | // print any text |
eencae | 4:5d40f64a82c1 | 46 | lcd.printString("Run!",0,0); |
eencae | 4:5d40f64a82c1 | 47 | |
eencae | 4:5d40f64a82c1 | 48 | // draw the required shapes |
eencae | 4:5d40f64a82c1 | 49 | lcd.drawRect(0,40,84,8,FILL_BLACK); |
eencae | 4:5d40f64a82c1 | 50 | lcd.drawCircle(70,10,5,FILL_TRANSPARENT); |
eencae | 4:5d40f64a82c1 | 51 | |
eencae | 4:5d40f64a82c1 | 52 | // draw the sprite at the correct place |
eencae | 4:5d40f64a82c1 | 53 | lcd.drawSprite(x,40-12,12,10,(int *)run); |
eencae | 2:1c669cb14c5b | 54 | |
eencae | 4:5d40f64a82c1 | 55 | x+=2; // increment x to move sprite across 2 pixels each loop |
eencae | 2:1c669cb14c5b | 56 | |
eencae | 4:5d40f64a82c1 | 57 | if (x>83) { // if gone off screen then move back to left |
eencae | 4:5d40f64a82c1 | 58 | x=0; |
eencae | 4:5d40f64a82c1 | 59 | } |
eencae | 4:5d40f64a82c1 | 60 | |
eencae | 4:5d40f64a82c1 | 61 | lcd.refresh(); // refresh the LCD so the pixels appear |
eencae | 4:5d40f64a82c1 | 62 | wait_ms(1000/10); // this gives a refresh rate of 10 frames per second |
eencae | 0:99902f3f1508 | 63 | } |
eencae | 0:99902f3f1508 | 64 | } |
eencae | 1:b5c4ca3bf074 | 65 | |
eencae | 1:b5c4ca3bf074 | 66 |