Ika Shouyu Poppoyaki - LPC82x supported

Dependencies:   MODSERIAL mbed

Fork of ika_shouyu_poppoyaki by Tedd OKANO

Revision:
16:cac2348cfcfb
Parent:
15:051ca36cc64b
Child:
17:339f40a14f67
--- a/main.cpp	Wed Aug 28 12:07:47 2013 +0000
+++ b/main.cpp	Mon Sep 09 11:42:06 2013 +0000
@@ -28,16 +28,20 @@
 DigitalOut      reset_pin( p26 );
 DigitalOut      isp_pin( p25 );
 Serial          target ( p28, p27 );
+Serial          pc ( USBTX,USBRX );
 LocalFileSystem local( "local" );
+Ticker          success;
 
 #define     ENTER_TO_ISP_MODE   0
 #define     NO_ISP_MODE         1
 #define     STR_BUFF_SIZE       64
 
 #define     SOURCE_FILE         "/local/bin"
-#define     BAUD_RATE           115200
-//#define     BAUD_RATE           57600
-//#define     BAUD_RATE           9600
+#define     ISP_BAUD_RATE       115200
+//#define     ISP_BAUD_RATE       57600
+//#define     ISP_BAUD_RATE       9600
+
+#define     TARGET_OPERATION_BAUD_RATE  9600
 
 int     error_state         = 0;
 
@@ -59,6 +63,7 @@
 void    put_string( char *s );
 void    put_binary( char *b, int size );
 void    get_string( char *s );
+void    success_indicator();
 
 #pragma diag_suppress 1293  //  surpressing a warning message of "assignment in condition" ;)
 
@@ -74,7 +79,7 @@
 
     printf( "\r\n\r\n\r\nmbed ISP program : programming LPC device from mbed\r\n" );
 
-    target.baud( BAUD_RATE );
+    target.baud( ISP_BAUD_RATE );
 
     reset_target( ENTER_TO_ISP_MODE );
 
@@ -130,17 +135,28 @@
             "** The data has been written successflly :)"
           );
 
-//#define AUTO_PROGRAM_START
+#define AUTO_PROGRAM_START
 #ifdef  AUTO_PROGRAM_START
+    target.baud( TARGET_OPERATION_BAUD_RATE );
+
     reset_target( NO_ISP_MODE );
-    printf( "  ** The program in flash has been started!!\r\n\r\n" );
+    printf( "  ** The program in flash has been started!!\r\n" );
 #endif
 
-    int i   = 0;
+    printf( "     (now the mbed is working in \"serial through mode\")\r\n\r\n" );
+
+    success.attach( &success_indicator, 0.1 );
+
+    while (1) {
 
-    while ( 1 ) {
-        leds    = 0x1 << (i++ & 0x3);
-        wait( 0.1 );
+        if ( pc.readable() ) {
+            target.putc( pc.getc() );
+        }
+
+        if ( target.readable() ) {
+            pc.putc( target.getc() );
+        }
+
     }
 }
 
@@ -517,3 +533,11 @@
     *s  = '\0';
 }
 
+
+void success_indicator()
+{
+    static int  i   = 0;
+    
+    leds    = 0x1 << (i++ & 0x3);
+}
+