Newhaven 320x240 LCD

Dependencies:   mbed

Committer:
pbevans89
Date:
Mon Feb 28 17:48:12 2011 +0000
Revision:
4:aa6dc362b462
Parent:
3:1cf3ec6c70d7

        

Who changed what in which revision?

UserRevisionLine numberNew 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 }