for SC16IS750 test program. Confirming register access method

Revision:
1:d9a4b7a4a159
Parent:
0:bae17cf3178e
--- a/SC16IS750.cpp	Wed Jul 18 01:24:33 2012 +0000
+++ b/SC16IS750.cpp	Wed Jul 18 01:45:38 2012 +0000
@@ -1,8 +1,10 @@
 #include    "mbed.h"
 #include    "SC16IS750.h"
 
-#define XTAL_FREQUENCY          14784000    //  Hz
-#define REGISTER_ACCESS_SIZE    2
+#define XTAL_FREQUENCY              14784000    //  Hz
+#define REGISTER_ACCESS_SIZE        2
+
+#define REGISTER_INIT_BY_RESTART    true
 
 char    init[][ REGISTER_ACCESS_SIZE ] = {
     { SC16IS750::LCR, 0x80 },
@@ -27,17 +29,12 @@
 
     i2c.frequency( 400 * 1000 );
 
-    baud_setting    = XTAL_FREQUENCY / (baud_rate * 16);    
+    baud_setting    = XTAL_FREQUENCY / (baud_rate * 16);
     init[ 1 ][ 1 ]  = (char)baud_setting;
     init[ 2 ][ 1 ]  = (char)(baud_setting >> 8);
-    
+
     init_registers();
-}
-
-void SC16IS750::init_registers( void ) {
-    for ( int i = 0; i <  (sizeof( init ) / REGISTER_ACCESS_SIZE); i++ )
-        i2c.write( i2c_addr, init[ i ], REGISTER_ACCESS_SIZE );
-
+    
     i2c.stop();
 }
 
@@ -45,7 +42,7 @@
     int     baud_setting;
 
     baud_rate   = baud;
-    baud_setting    = XTAL_FREQUENCY / (baud_rate * 16);    
+    baud_setting    = XTAL_FREQUENCY / (baud_rate * 16);
 
     register_write( SC16IS750::LCR, 0x80 );
     register_write( SC16IS750::DLL, (char)baud_setting );
@@ -53,7 +50,12 @@
     register_write( SC16IS750::LCR, 0x03 );
 }
 
-void SC16IS750::send_str( char *s ) {
+void SC16IS750::init_registers( void ) {
+    for ( int i = 0; i <  (sizeof( init ) / REGISTER_ACCESS_SIZE); i++ )
+        i2c.write( i2c_addr, init[ i ], REGISTER_ACCESS_SIZE, REGISTER_INIT_BY_RESTART );
+}
+
+void SC16IS750::send_str( const char *s ) {
     char    buffer[ 65 ];
     int     i   = 1;