Dependencies:   TextLCD mbed wave_player SDFileSystem

Committer:
nameless129
Date:
Sun Mar 11 06:15:43 2012 +0000
Revision:
0:2191f0323ae0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nameless129 0:2191f0323ae0 1 #include "mbed.h"
nameless129 0:2191f0323ae0 2 #include <wave_player.h>
nameless129 0:2191f0323ae0 3
nameless129 0:2191f0323ae0 4 ////////////////////////////////////////
nameless129 0:2191f0323ae0 5 //////// general setting ////////
nameless129 0:2191f0323ae0 6 ////////////////////////////////////////
nameless129 0:2191f0323ae0 7 //#define USE_TextLCD_20x4
nameless129 0:2191f0323ae0 8 #define USE_FIXED_IP
nameless129 0:2191f0323ae0 9
nameless129 0:2191f0323ae0 10 ////////////////////////////////////////
nameless129 0:2191f0323ae0 11 //////// For TextLCD ////////
nameless129 0:2191f0323ae0 12 ////////////////////////////////////////
nameless129 0:2191f0323ae0 13 #include "TextLCD.h"
nameless129 0:2191f0323ae0 14 #ifdef USE_TextLCD_20x4
nameless129 0:2191f0323ae0 15 //TextLCD lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3
nameless129 0:2191f0323ae0 16 #else
nameless129 0:2191f0323ae0 17 TextLCD lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3
nameless129 0:2191f0323ae0 18 #endif
nameless129 0:2191f0323ae0 19
nameless129 0:2191f0323ae0 20 ////////////////////////////////////////
nameless129 0:2191f0323ae0 21 //////// For SD_card ////////
nameless129 0:2191f0323ae0 22 ////////////////////////////////////////
nameless129 0:2191f0323ae0 23 #include "SDFileSystem.h"
nameless129 0:2191f0323ae0 24 //SDFileSystem sd(p5, p6, p7, p13, "sd"); // mosi, miso, sclk, cs, name
nameless129 0:2191f0323ae0 25 SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name (HW modification candidate)
nameless129 0:2191f0323ae0 26
nameless129 0:2191f0323ae0 27 AnalogOut DACout(p18);
nameless129 0:2191f0323ae0 28 wave_player waver(&DACout);
nameless129 0:2191f0323ae0 29
nameless129 0:2191f0323ae0 30
nameless129 0:2191f0323ae0 31 void test_TextLCD( void );
nameless129 0:2191f0323ae0 32 void test_file_write( char *title, char *path );
nameless129 0:2191f0323ae0 33 int position( void );
nameless129 0:2191f0323ae0 34
nameless129 0:2191f0323ae0 35 int main() {
nameless129 0:2191f0323ae0 36 FILE *fp;
nameless129 0:2191f0323ae0 37 fp = fopen("/sd/test.wav","r");
nameless129 0:2191f0323ae0 38 if (fp == NULL) {
nameless129 0:2191f0323ae0 39 lcd.locate( 0, 0 );
nameless129 0:2191f0323ae0 40 lcd.printf("File couldn't open\n");
nameless129 0:2191f0323ae0 41 } else {
nameless129 0:2191f0323ae0 42 lcd.locate( 0, 0 );
nameless129 0:2191f0323ae0 43 lcd.printf("Open ok\n");
nameless129 0:2191f0323ae0 44 }
nameless129 0:2191f0323ae0 45 while (1) {
nameless129 0:2191f0323ae0 46 lcd.locate( 0, 1 );
nameless129 0:2191f0323ae0 47 lcd.printf("File Playing\n");
nameless129 0:2191f0323ae0 48 waver.play(fp);
nameless129 0:2191f0323ae0 49 }
nameless129 0:2191f0323ae0 50 fclose(fp);
nameless129 0:2191f0323ae0 51 }
nameless129 0:2191f0323ae0 52
nameless129 0:2191f0323ae0 53
nameless129 0:2191f0323ae0 54 void test_TextLCD( void ) {
nameless129 0:2191f0323ae0 55 // TextLCD test
nameless129 0:2191f0323ae0 56
nameless129 0:2191f0323ae0 57 #ifdef USE_TextLCD_20x4
nameless129 0:2191f0323ae0 58 lcd.locate( 0, 0 );
nameless129 0:2191f0323ae0 59 for ( int i = 0, c = '0'; i < 20; i++, c++ )
nameless129 0:2191f0323ae0 60 lcd.putc( c );
nameless129 0:2191f0323ae0 61
nameless129 0:2191f0323ae0 62 for ( int i = 0, c = 'A'; i < 20; i++, c++ )
nameless129 0:2191f0323ae0 63 lcd.putc( c );
nameless129 0:2191f0323ae0 64
nameless129 0:2191f0323ae0 65 for ( int i = 0, c = 'a'; i < 20; i++, c++ )
nameless129 0:2191f0323ae0 66 lcd.putc( c );
nameless129 0:2191f0323ae0 67 for ( int i = 0, c = '0' - 10; i < 20; i++, c++ )
nameless129 0:2191f0323ae0 68 lcd.putc( c );
nameless129 0:2191f0323ae0 69 exit( 0 );
nameless129 0:2191f0323ae0 70 wait( 300 );
nameless129 0:2191f0323ae0 71 lcd.cls();
nameless129 0:2191f0323ae0 72 #endif // USE_TextLCD_20x4
nameless129 0:2191f0323ae0 73
nameless129 0:2191f0323ae0 74 lcd.locate( 0, 0 );
nameless129 0:2191f0323ae0 75 lcd.printf( "TextLCD: OK?" );
nameless129 0:2191f0323ae0 76 lcd.locate( 0, 1 );
nameless129 0:2191f0323ae0 77 lcd.printf( "" );
nameless129 0:2191f0323ae0 78
nameless129 0:2191f0323ae0 79 }
nameless129 0:2191f0323ae0 80
nameless129 0:2191f0323ae0 81 void test_file_write( char *title, char *path ) {
nameless129 0:2191f0323ae0 82 // SD card test
nameless129 0:2191f0323ae0 83 lcd.locate( 0, position() );
nameless129 0:2191f0323ae0 84 lcd.printf( "%s: ", title );
nameless129 0:2191f0323ae0 85
nameless129 0:2191f0323ae0 86 FILE *fp = fopen( path, "w" );
nameless129 0:2191f0323ae0 87 if ( fp == NULL ) {
nameless129 0:2191f0323ae0 88 lcd.printf( "error" );
nameless129 0:2191f0323ae0 89 error( "Could not open file for write\n" );
nameless129 0:2191f0323ae0 90 }
nameless129 0:2191f0323ae0 91 fprintf( fp, "The mbed writing a file through the star board orange (%s)!", title );
nameless129 0:2191f0323ae0 92 fclose( fp );
nameless129 0:2191f0323ae0 93
nameless129 0:2191f0323ae0 94 lcd.printf( "OK." );
nameless129 0:2191f0323ae0 95 }
nameless129 0:2191f0323ae0 96
nameless129 0:2191f0323ae0 97 int position( void ) {
nameless129 0:2191f0323ae0 98 static int p = 0;
nameless129 0:2191f0323ae0 99
nameless129 0:2191f0323ae0 100 #ifdef USE_TextLCD_20x4
nameless129 0:2191f0323ae0 101 return( ++p % 4 );
nameless129 0:2191f0323ae0 102 #else
nameless129 0:2191f0323ae0 103 return( ++p % 2 );
nameless129 0:2191f0323ae0 104 #endif
nameless129 0:2191f0323ae0 105 }