More complicated test program that generates text, coloured sprites and sound.

Dependencies:   Gameduino mbed CommonTypes

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?

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