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: SimpleDMA eeprom mbed-rtos mbed
Fork of CDMS_CODE_FM_28JAN2017 by
Diff: i2c.h
- Revision:
- 130:d5b53088270b
- Parent:
- 105:5ce0337e7c15
- Child:
- 131:8745e6041ebc
- Child:
- 132:d4a4461214ad
--- a/i2c.h Fri Feb 26 13:29:33 2016 +0000
+++ b/i2c.h Sat Feb 27 07:12:04 2016 +0000
@@ -4,13 +4,11 @@
InterruptIn irpt_4m_slv(D3); //I2c interrupt from CDMS
DigitalOut irpt_2_slv(D4); //I2C interrupt to CDMS
-//I2C master(PIN32,PIN31);
-I2C master(PTC9,PTC8);
-//DigitalOut led1(PIN46);
-//DigitalOut led2(PIN95);
+//I2C master(PTC9,PTC8);
const int addr = 0x20; //slave address
-char telecommand[tc_len];
-char telemetry[tm_len];
+const int addr_pl = 0x20<<1; //PL slave address
+//char telecommand[tc_len];
+//char telemetry[tm_len];
//Timer test;
//Timer t_read;
bool write_ack = true;
@@ -18,29 +16,44 @@
int count = 0;
-void FCTN_I2C_WRITE(char *data)
+void FCTN_I2C_WRITE_PL(char *data2,uint8_t tc_len2)
{
- irpt_2_slv = 1;
- //t.start();
- write_ack = master.write(addr|0x00,data,tc_len);
- //t.stop();
- //if(write_ack == 0)
- //gPC.printf("\n\r data not sent \n");
-
-if (write_ack == 1)
+ write_ack = master.write(addr_pl|0x00,data2,tc_len2);//address to be defined in payload
+ if(write_ack == 0)
+ {
+ #if DEBUG
+ gPC.printf("\n\r data not sent \n");
+ #endif
+ }
+ else
{
-// led2 = 1;
- //gPC.printf("\n\r data not sent \n");
-// led2 = 0;
- }
- irpt_2_slv = 0;
- //gPC.printf("\n\r %d \n",t.read_us());
+ #if DEBUG
+ gPC.printf("\n\r data sent \n");
+ #endif
+ }
+}
+void FCTN_I2C_READ_PL(char *data,int length)
+{
+ //t_read.start();
+ read_ack = master.read(addr_pl|1,data,length);
+ //t_read.stop();
+
+ //if(read_ack == 0)
+ // printf("\n\rData received from BAE %s \n",data);
+ //if (read_ack == 1)
+// {
+// gLEDR = 1;
+// printf("\n \r data not received \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)
-{
+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);
@@ -60,4 +73,24 @@
irpt_2_slv = 0;
//printf("\n\r %d \n",t.read_us());
//t.reset();
+}
+
+void FCTN_I2C_WRITE(char *data)
+{
+ irpt_2_slv = 1;
+ //t.start();
+ write_ack = master.write(addr|0x00,data,tc_len);
+ //t.stop();
+ //if(write_ack == 0)
+ //gPC.printf("\n\r data not sent \n");
+
+if (write_ack == 0)
+ {
+// led2 = 1;
+ //gPC.printf("\n\r data not sent \n");
+// led2 = 0;
+ }
+ irpt_2_slv = 0;
+ //gPC.printf("\n\r %d \n",t.read_us());
+ //t.reset();
}
\ No newline at end of file
