Paul Evans
/
Newhaven_LCD
Newhaven 320x240 LCD
main.cpp@4:aa6dc362b462, 2011-02-28 (annotated)
- Committer:
- pbevans89
- Date:
- Mon Feb 28 17:48:12 2011 +0000
- Revision:
- 4:aa6dc362b462
- Parent:
- 3:1cf3ec6c70d7
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
pbevans89 | 4:aa6dc362b462 | 1 | /* mbed Newhaven LCD simple Pong demonstration |
pbevans89 | 4:aa6dc362b462 | 2 | * Copywrite (c) 2011, Paul Evans |
pbevans89 | 4:aa6dc362b462 | 3 | */ |
pbevans89 | 4:aa6dc362b462 | 4 | |
pbevans89 | 3:1cf3ec6c70d7 | 5 | #include "mbed.h" |
pbevans89 | 3:1cf3ec6c70d7 | 6 | #include "newhaven.h" |
pbevans89 | 3:1cf3ec6c70d7 | 7 | |
pbevans89 | 3:1cf3ec6c70d7 | 8 | BusInOut MyBus(p8,p9,p10,p11,p12,p13,p14,p15); |
pbevans89 | 3:1cf3ec6c70d7 | 9 | NHLCD MyLCD(p5,p6,p7,p16,p17,&MyBus); |
pbevans89 | 3:1cf3ec6c70d7 | 10 | |
pbevans89 | 3:1cf3ec6c70d7 | 11 | int main() { |
pbevans89 | 4:aa6dc362b462 | 12 | int r1 = 100, r2 = 100, rb = 115, cb = 155; |
pbevans89 | 4:aa6dc362b462 | 13 | int dr = 5, dc = 5; |
pbevans89 | 4:aa6dc362b462 | 14 | |
pbevans89 | 3:1cf3ec6c70d7 | 15 | MyLCD.Init(); |
pbevans89 | 3:1cf3ec6c70d7 | 16 | MyLCD.clearScreen(); |
pbevans89 | 3:1cf3ec6c70d7 | 17 | wait(.5); |
pbevans89 | 4:aa6dc362b462 | 18 | MyLCD.text("PONG!", 0, 15); |
pbevans89 | 4:aa6dc362b462 | 19 | |
pbevans89 | 3:1cf3ec6c70d7 | 20 | while(1) |
pbevans89 | 3:1cf3ec6c70d7 | 21 | { |
pbevans89 | 4:aa6dc362b462 | 22 | MyLCD.fillRect(r1, 0, 20, 4, 1); // draw the paddles and ball |
pbevans89 | 4:aa6dc362b462 | 23 | MyLCD.fillRect(r2, 312, 20, 4, 1); |
pbevans89 | 4:aa6dc362b462 | 24 | MyLCD.fillRect(rb, cb, 3, 3, 1); |
pbevans89 | 4:aa6dc362b462 | 25 | |
pbevans89 | 4:aa6dc362b462 | 26 | wait(.2); // wait between frames |
pbevans89 | 4:aa6dc362b462 | 27 | |
pbevans89 | 4:aa6dc362b462 | 28 | MyLCD.fillRect(r1, 0, 20, 4, 0); // clear the paddles and balls |
pbevans89 | 4:aa6dc362b462 | 29 | MyLCD.fillRect(r2, 312, 20, 4, 0); |
pbevans89 | 4:aa6dc362b462 | 30 | MyLCD.fillRect(rb, cb, 4, 4, 0); |
pbevans89 | 4:aa6dc362b462 | 31 | |
pbevans89 | 4:aa6dc362b462 | 32 | rb += dr; // move the ball |
pbevans89 | 4:aa6dc362b462 | 33 | cb += dc; |
pbevans89 | 4:aa6dc362b462 | 34 | if (cb > 100) { // move the right paddle if necessary |
pbevans89 | 4:aa6dc362b462 | 35 | if (r2 > rb && r2 > 0) r2-=5; |
pbevans89 | 4:aa6dc362b462 | 36 | else if (r2 < 214) r2+=5; |
pbevans89 | 3:1cf3ec6c70d7 | 37 | } |
pbevans89 | 4:aa6dc362b462 | 38 | if (cb < 220) { // move the left paddle if necessary |
pbevans89 | 4:aa6dc362b462 | 39 | if (r1 > rb && r1 > 0) r1-=5; |
pbevans89 | 4:aa6dc362b462 | 40 | else if (r1 < 214) r1+=5; |
pbevans89 | 4:aa6dc362b462 | 41 | } |
pbevans89 | 4:aa6dc362b462 | 42 | if (cb > 310 || cb < 4){ // check bounds for ball column |
pbevans89 | 4:aa6dc362b462 | 43 | dc = -dc; |
pbevans89 | 4:aa6dc362b462 | 44 | cb += dc; |
pbevans89 | 4:aa6dc362b462 | 45 | }if (rb < 10 || rb > 234){ // check bounds for ball row |
pbevans89 | 4:aa6dc362b462 | 46 | dr = -dr; |
pbevans89 | 4:aa6dc362b462 | 47 | rb += dr; |
pbevans89 | 4:aa6dc362b462 | 48 | } |
pbevans89 | 3:1cf3ec6c70d7 | 49 | } |
pbevans89 | 3:1cf3ec6c70d7 | 50 | } |