Paul Evans
/
Newhaven_LCD
Newhaven 320x240 LCD
Diff: main.cpp
- Revision:
- 4:aa6dc362b462
- Parent:
- 3:1cf3ec6c70d7
--- a/main.cpp Sun Feb 27 23:30:14 2011 +0000 +++ b/main.cpp Mon Feb 28 17:48:12 2011 +0000 @@ -1,3 +1,7 @@ +/* mbed Newhaven LCD simple Pong demonstration + * Copywrite (c) 2011, Paul Evans + */ + #include "mbed.h" #include "newhaven.h" @@ -5,19 +9,42 @@ NHLCD MyLCD(p5,p6,p7,p16,p17,&MyBus); int main() { - int i; + int r1 = 100, r2 = 100, rb = 115, cb = 155; + int dr = 5, dc = 5; + MyLCD.Init(); MyLCD.clearScreen(); wait(.5); + MyLCD.text("PONG!", 0, 15); + while(1) { - MyLCD.text("Hello World!", 10, 1); - wait(1); - for(i = 0; i < 20; i++){ - MyLCD.setPixel(i,i); + MyLCD.fillRect(r1, 0, 20, 4, 1); // draw the paddles and ball + MyLCD.fillRect(r2, 312, 20, 4, 1); + MyLCD.fillRect(rb, cb, 3, 3, 1); + + wait(.2); // wait between frames + + MyLCD.fillRect(r1, 0, 20, 4, 0); // clear the paddles and balls + MyLCD.fillRect(r2, 312, 20, 4, 0); + MyLCD.fillRect(rb, cb, 4, 4, 0); + + rb += dr; // move the ball + cb += dc; + if (cb > 100) { // move the right paddle if necessary + if (r2 > rb && r2 > 0) r2-=5; + else if (r2 < 214) r2+=5; } - wait(1); - MyLCD.clearScreen(); - wait(1); + if (cb < 220) { // move the left paddle if necessary + if (r1 > rb && r1 > 0) r1-=5; + else if (r1 < 214) r1+=5; + } + if (cb > 310 || cb < 4){ // check bounds for ball column + dc = -dc; + cb += dc; + }if (rb < 10 || rb > 234){ // check bounds for ball row + dr = -dr; + rb += dr; + } } }