Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed mbed-rtos SimpleDMA FreescaleIAP eeprom
Fork of CDMS_CODE_FM_28JAN2017 by
Diff: i2c.h
- Revision:
- 147:7fd1ca3a35a1
- Parent:
- 132:d4a4461214ad
- Child:
- 151:e6c7d4f87704
--- a/i2c.h Thu Mar 10 15:26:50 2016 +0000
+++ b/i2c.h Sat Apr 02 13:54:24 2016 +0000
@@ -2,10 +2,7 @@
#define tc_len 135
#define tc_test_len 135
-InterruptIn irpt_4m_slv(D3); //I2c interrupt from CDMS
-DigitalOut irpt_2_slv(D4); //I2C interrupt to CDMS
-//I2C master(PTC9,PTC8);
-const int addr = 0x20; //slave address
+const int addr_bae = 0x20; //slave address
const int addr_pl = 0x20<<1; //PL slave address
bool write_ack = true;
@@ -27,35 +24,14 @@
}
}
-void FCTN_I2C_READ_PL(char *data,int length)
+
+
+void FCTN_I2C_READ(char *data,int length)
{
+ master.frequency(100000);
+ CDMS_I2C_GPIO = 1;
//t_read.start();
- read_ack = master.read(addr_pl|1,data,length);
- //t_read.stop();
- uint8_t len = 0;
-
- printf("\n\r i2c data : \n\n\r\r");
- while(len != length) printf("%c",data[len]);
- printf(" \n\n\r\r");
- if(read_ack == 0)
- printf("\n\rData received from PL %s \n",data);
- if (read_ack == 1)
- {
-// gLEDR = 1;
- printf("\n \r data not received from PL\n");
-// gLEDR = 0;
- }
-//if(read_ack == 1)
-//pc.printf("\n \r data not received \n");
- //printf("\n\r %d \n",t.read_us());
- //t.reset();
-}
-
-void FCTN_I2C_READ(char *data,int length, int addr)
-{
- irpt_2_slv = 1;
- //t_read.start();
- read_ack = master.read(addr|1,data,length);
+ read_ack = master.read(addr_bae|1,data,length);
//t_read.stop();
//if(read_ack == 0)
@@ -67,29 +43,32 @@
//if(read_ack == 1)
//pc.printf("\n \r data not received \n");
- irpt_2_slv = 0;
+ CDMS_I2C_GPIO = 0;
//printf("\n\r %d \n",t.read_us());
//t.reset();
+ master.frequency(400000);
}
-void FCTN_I2C_WRITE(char *data)
+void FCTN_I2C_WRITE(char *data,uint8_t tc_len2)
{
- irpt_2_slv = 1;
+ master.frequency(100000);
+ CDMS_I2C_GPIO = 1;
//t.start();
- write_ack = master.write(addr|0x00,data,tc_len);
+ write_ack = master.write(addr_bae|0x00,data,tc_len2);
//t.stop();
//if(write_ack == 0)
//gPC.printf("\n\r data not sent \n");
-if (write_ack == 0)
+if (write_ack == 1)
{
// led2 = 1;
- //gPC.printf("\n\r data not sent \n");
+ gPC.printf("\n\r data not sent \n");
// led2 = 0;
}
- irpt_2_slv = 0;
+ CDMS_I2C_GPIO = 0;
//gPC.printf("\n\r %d \n",t.read_us());
//t.reset();
+ master.frequency(400000);
}
