More complicated test program that generates text, coloured sprites and sound.
Dependencies: Gameduino mbed CommonTypes
GameduinoTest.cpp@0:13f69384ff8a, 2012-05-05 (annotated)
- Committer:
- RichardE
- Date:
- Sat May 05 11:46:26 2012 +0000
- Revision:
- 0:13f69384ff8a
- Child:
- 1:c8ec5f958f3c
Got mbed communicating with Gameduino and basic initialisation and character functions appear to be working.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
RichardE | 0:13f69384ff8a | 1 | /* |
RichardE | 0:13f69384ff8a | 2 | * SOURCE FILE : GameduinoTest.cpp |
RichardE | 0:13f69384ff8a | 3 | * |
RichardE | 0:13f69384ff8a | 4 | * Definition of class GameduinoTest. |
RichardE | 0:13f69384ff8a | 5 | * Tests a Gameduino object. |
RichardE | 0:13f69384ff8a | 6 | * |
RichardE | 0:13f69384ff8a | 7 | */ |
RichardE | 0:13f69384ff8a | 8 | |
RichardE | 0:13f69384ff8a | 9 | #include "GameduinoTest.h" // this module's prototypes |
RichardE | 0:13f69384ff8a | 10 | #include "mbed.h" // mbed library |
RichardE | 0:13f69384ff8a | 11 | #include "Gameduino.h" // for Gameduino class |
RichardE | 0:13f69384ff8a | 12 | |
RichardE | 0:13f69384ff8a | 13 | /***************/ |
RichardE | 0:13f69384ff8a | 14 | /* CONSTRUCTOR */ |
RichardE | 0:13f69384ff8a | 15 | /***************/ |
RichardE | 0:13f69384ff8a | 16 | GameduinoTest::GameduinoTest() { |
RichardE | 0:13f69384ff8a | 17 | } |
RichardE | 0:13f69384ff8a | 18 | |
RichardE | 0:13f69384ff8a | 19 | /**************/ |
RichardE | 0:13f69384ff8a | 20 | /* DESTRUCTOR */ |
RichardE | 0:13f69384ff8a | 21 | /**************/ |
RichardE | 0:13f69384ff8a | 22 | GameduinoTest::~GameduinoTest() { |
RichardE | 0:13f69384ff8a | 23 | } |
RichardE | 0:13f69384ff8a | 24 | |
RichardE | 0:13f69384ff8a | 25 | /****************/ |
RichardE | 0:13f69384ff8a | 26 | /* RUN THE TEST */ |
RichardE | 0:13f69384ff8a | 27 | /****************/ |
RichardE | 0:13f69384ff8a | 28 | void GameduinoTest::Run( void ) { |
RichardE | 0:13f69384ff8a | 29 | // Make a serial port for communicating with PC. |
RichardE | 0:13f69384ff8a | 30 | Serial pc( USBTX, USBRX ); |
RichardE | 0:13f69384ff8a | 31 | // Sign on message. |
RichardE | 0:13f69384ff8a | 32 | pc.printf( "Up and running!\r\n" ); |
RichardE | 0:13f69384ff8a | 33 | // Make a digital output for use with Gameduino. |
RichardE | 0:13f69384ff8a | 34 | DigitalOut cs( p8 ); |
RichardE | 0:13f69384ff8a | 35 | // Initialise an SPI link for communications with Gameduino. |
RichardE | 0:13f69384ff8a | 36 | // Use pin 5 for MOSI. |
RichardE | 0:13f69384ff8a | 37 | // Use pin 6 for MISO. |
RichardE | 0:13f69384ff8a | 38 | // Use pin 7 for SCK. |
RichardE | 0:13f69384ff8a | 39 | SPI spi( p5, p6, p7 ); |
RichardE | 0:13f69384ff8a | 40 | // 4MHz clock should be OK since this is default on an Arduino. |
RichardE | 0:13f69384ff8a | 41 | spi.frequency( 4000000 ); |
RichardE | 0:13f69384ff8a | 42 | // Set SPI format to use. |
RichardE | 0:13f69384ff8a | 43 | // Use 8 bits per SPI frame. |
RichardE | 0:13f69384ff8a | 44 | // Use SPI mode 0. |
RichardE | 0:13f69384ff8a | 45 | spi.format( 8, 0 ); |
RichardE | 0:13f69384ff8a | 46 | // Make a Gameduino and pass SPI link and digital output for chip select. |
RichardE | 0:13f69384ff8a | 47 | Gameduino gd( &spi, &cs ); |
RichardE | 0:13f69384ff8a | 48 | // Reset the Gameduino. |
RichardE | 0:13f69384ff8a | 49 | gd.begin(); |
RichardE | 0:13f69384ff8a | 50 | // Lets have a default ASCII character set. |
RichardE | 0:13f69384ff8a | 51 | gd.ascii(); |
RichardE | 0:13f69384ff8a | 52 | // Read from ident register. |
RichardE | 0:13f69384ff8a | 53 | UInt8 id = gd.rd( Gameduino::IDENT ); |
RichardE | 0:13f69384ff8a | 54 | // Report back to PC. |
RichardE | 0:13f69384ff8a | 55 | pc.printf( "Gameduino ID is 0x%02X.\r\n", (int)id ); |
RichardE | 0:13f69384ff8a | 56 | // Write something to character memory. |
RichardE | 0:13f69384ff8a | 57 | gd.__wstart( Gameduino::RAM_PIC ); |
RichardE | 0:13f69384ff8a | 58 | for( UInt8 c = 'A'; c <= 'Z'; ++c ) { |
RichardE | 0:13f69384ff8a | 59 | gd.__tr8( c ); |
RichardE | 0:13f69384ff8a | 60 | } |
RichardE | 0:13f69384ff8a | 61 | gd.__end(); |
RichardE | 0:13f69384ff8a | 62 | } |