This is just a simple test program **to check the hardware**: mbeduino and 4x4x4 LED_cube shield. \\ A class library is available for easy operation. Please find it at...\\ http://mbed.org/users/okano/libraries/LED_Cube444/\\ There are two demo programs for this library available. Please find those at...\\ (1) Very simplified demo sample code : \\ http://mbed.org/users/okano/programs/LED_Cube444_mbeduino-very_simple_demo/\\ (2) More complex (fancy) demo : \\ http://mbed.org/users/okano/programs/LED_Cube444_mbeduino_demo/\\ About the hardware: \\ http://mbed.org/users/okini3939/notebook/mbeduino/ \\ http://www.galileo-7.com/?pid=20015630 \\
Revision 0:cdfbcd6268db, committed 2010-10-14
- Comitter:
- okano
- Date:
- Thu Oct 14 01:08:36 2010 +0000
- Commit message:
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LED_Cube444_test.cpp Thu Oct 14 01:08:36 2010 +0000 @@ -0,0 +1,73 @@ +// mbeduino test code (with 4x4x4 LED Cube shield) +// +// mbeduino = http://mbed.org/users/okini3939/notebook/mbeduino/ (Japanese) +// 4x4x4 LED Cube shield = http://www.galileo-7.com/?pid=20015630 (Japanese) +// +// This is just simple code to check the mbeduino and the 4x4x4 LED Cube shield operation +// It turns-on each indivisual LEDs one by one. +// + +#include "mbed.h" +#include "mbeduino_shield.h" + +#define CUBE_SIZE 4 // n of nodes on one edge +#define SR_BIT_LENGTH (CUBE_SIZE * CUBE_SIZE) // n of bits on one layer + +typedef unsigned short U16; // bit length should be same or more than SR_BIT_LENGTH + +#define SR_DATA_OUT ARD_D2 // data line to the shiftregister +#define SR_CLCK_OUT ARD_D3 // clock line to the shiftregister +#define CATHODE0 ARD_D11 // cathode control line for bottom layer +#define CATHODE1 ARD_D10 // cathode control line for 2nd layer from bottom +#define CATHODE2 ARD_D9 // cathode control line for 3nd layer from bottom +#define CATHODE3 ARD_D8 // cathode control line for top layer + +DigitalOut sr_data(SR_DATA_OUT); +DigitalOut sr_clk(SR_CLCK_OUT); +BusOut cathode( CATHODE0, CATHODE1, CATHODE2, CATHODE3 ); + +//U16 main_buffer[ CUBE_SIZE ] = { 0, 0, 0, 0 }; + +void set_serialregister( U16 v ); + +int main() { + cathode = 0x0; + + while (1) { + for ( int c = 0; c < CUBE_SIZE; c++ ) { + for ( int i = 0; i < SR_BIT_LENGTH; i++ ) { + set_serialregister( 0x0001 << i ); + + cathode = 0x1 << c; + wait( 0.05 ); + cathode = 0x0; + } + } + } +} + +void set_serialregister( U16 v ) { + for ( int i = 0; i < SR_BIT_LENGTH; i++ ) { + sr_data = ((v >> i) & 0x1); + sr_clk = 0; + sr_clk = 1; + } +} + + + + + + + + + + + + + + + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Oct 14 01:08:36 2010 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/e2ac27c8e93e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbeduino_shield.h Thu Oct 14 01:08:36 2010 +0000 @@ -0,0 +1,47 @@ +// pin definition header for "mbeduino" +// +// http://mbed.org/users/okini3939/notebook/mbeduino-shieldh/ + +#define ARD_D0 p27 +#define ARD_D1 p28 +#define ARD_D2 p29 +#define ARD_D3 p21 +#define ARD_D4 p30 +#define ARD_D5 p22 +#define ARD_D6 p23 +#define ARD_D7 p11 +#define ARD_D8 p12 +#define ARD_D9 p24 +#define ARD_D10 p25 +#define ARD_D11 p5 +#define ARD_D12 p6 +#define ARD_D13 p7 + +#define ARD_D14 ARD_A0 +#define ARD_D15 ARD_A1 +#define ARD_D16 ARD_A2 +#define ARD_D17 ARD_A3 +#define ARD_D18 ARD_SDA +#define ARD_D19 ARD_SCL + +#define ARD_A0 p15 +#define ARD_A1 p16 +#define ARD_A2 p17 +#define ARD_A3 p18 +#define ARD_A4 p19 +#define ARD_A5 p20 + +#define ARD_PWM0 ARD_D3 +#define ARD_PWM1 ARD_D5 +#define ARD_PWM2 ARD_D6 +#define ARD_PWM3 ARD_D9 +#define ARD_PWM4 ARD_D10 +#define ARD_PWM5 p26 + +#define ARD_RX ARD_D0 +#define ARD_TX ARD_D1 +#define ARD_SDA p9 +#define ARD_SCL p10 +#define ARD_MOSI p5 +#define ARD_MISO p6 +#define ARD_SCK p7 \ No newline at end of file