Tedd OKANO
/
SC18IS606_OS6_Hello
operation test on Mbed OS6
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 /* 00002 * "Hello code" for SC18IS606 library 00003 * 00004 * @author Akifumi (Tedd) OKANO, NXP Semiconductors 00005 * @version 0.2 00006 * @date 28-July-2021 00007 * 00008 * SC18IS606 is an "I2C-bus to SPI bridge" 00009 * http://www.nxp.com/ (product infomation page will be updated later) 00010 */ 00011 00012 #include "mbed.h" 00013 #include "SC18IS606.h" 00014 00015 I2C i2c( p28, p27 ); 00016 InterruptIn int_line( p21 ); 00017 SC18IS606 bridge( i2c ); // make a SC18IS606 instance as "bridge" 00018 00019 #define I2C_FREQUENCY (400 * 1000) // Hz 00020 #define SLAVE_SELECT_NUM 0 00021 #define DATA_LENGTH 256 00022 00023 void data_check( char *data, int length ); 00024 00025 volatile int int_flag = false; 00026 00027 void int_handler() 00028 { 00029 int_flag = true; 00030 } 00031 00032 void wait_transfer_done( void ) 00033 { 00034 while ( !int_flag ) 00035 ; 00036 00037 bridge.clear_interrupt(); 00038 int_flag = false; 00039 } 00040 00041 void hardware_settings( void ) 00042 { 00043 int_line.mode( PullUp ); 00044 int_line.fall( &int_handler ); 00045 i2c.frequency( I2C_FREQUENCY ); 00046 } 00047 00048 int main() 00049 { 00050 printf( "SC18IS606 Hello\r\n" ); 00051 00052 hardware_settings(); 00053 bridge.install_wait_func( wait_transfer_done ); 00054 00055 printf( "%s\r\n", bridge.read_version() ); 00056 00057 char snd_data[ DATA_LENGTH ]; 00058 char rcv_data[ DATA_LENGTH ]; 00059 00060 for ( int i = 0; i < DATA_LENGTH; i++ ) { 00061 snd_data[ i ] = i; 00062 } 00063 00064 while(1) { 00065 bridge.transfer( SLAVE_SELECT_NUM, snd_data, sizeof( snd_data ) ); 00066 bridge.read_buffer( rcv_data, sizeof( rcv_data ) ); 00067 data_check( rcv_data, DATA_LENGTH ); 00068 } 00069 } 00070 00071 void data_check( char *data, int length ) 00072 { 00073 for ( int i = 0; i < length; i++ ) { 00074 if ( !(i % 16) ) 00075 printf( "\r\n %02X :", i ); 00076 printf( " %02X", data[ i ] ); 00077 } 00078 }
Generated on Wed Jul 13 2022 19:39:37 by 1.7.2