cdms_update
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of CDMS_SD_MNG_OVERDRIVE by
i2c.cpp
00001 #include "mbed.h" 00002 #include "pinconfig.h" 00003 #include "rtos.h" 00004 #include "i2c.h" 00005 00006 DigitalOut irpt_2_slv(PIN67); //I2C interrupt to CDMS 00007 I2C master(PIN32,PIN31); 00008 DigitalOut led1(PIN46); 00009 DigitalOut led2(PIN95); 00010 const int addr = 0x20; //slave address 00011 char telecommand[tc_len]; 00012 char telemetry[tm_len]; 00013 Timer test; 00014 Timer t_read; 00015 bool write_ack = true; 00016 bool read_ack = true; 00017 00018 int count = 0; 00019 00020 void FCTN_I2C_WRITE(char *data) 00021 { 00022 irpt_2_slv = 1; 00023 //t.start(); 00024 write_ack = master.write(addr|0x00,data,tc_len); 00025 //t.stop(); 00026 //if(write_ack == 0) 00027 //pc.printf("\n\r data not sent \n"); 00028 00029 if (write_ack == 1) 00030 { 00031 led2 = 1; 00032 printf("\n\r data not sent \n"); 00033 led2 = 0; 00034 } 00035 irpt_2_slv = 0; 00036 //pc.printf("\n\r %d \n",t.read_us()); 00037 //t.reset(); 00038 } 00039 00040 00041 void FCTN_I2C_READ(char *data,int length) 00042 { 00043 irpt_2_slv = 1; 00044 t_read.start(); 00045 read_ack = master.read(addr|1,data,length); 00046 t_read.stop(); 00047 00048 //if(read_ack == 0) 00049 // printf("\n\rData received from BAE %s \n",data); 00050 if (read_ack == 1) 00051 { 00052 led2 = 1; 00053 printf("\n \r data not received \n"); 00054 led2 = 0; 00055 } 00056 //if(read_ack == 1) 00057 //pc.printf("\n \r data not received \n"); 00058 00059 irpt_2_slv = 0; 00060 //printf("\n\r %d \n",t.read_us()); 00061 //t.reset(); 00062 }
Generated on Thu Jul 14 2022 03:00:44 by 1.7.2