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: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
Diff: i2c.h
- Revision:
- 161:a63672bf4423
- Parent:
- 105:5ce0337e7c15
- Child:
- 162:48fda0b8d573
diff -r 9aec89c8cdc7 -r a63672bf4423 i2c.h
--- a/i2c.h Mon Apr 11 16:04:55 2016 +0000
+++ b/i2c.h Thu Apr 14 04:14:21 2016 +0000
@@ -2,62 +2,30 @@
#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(PIN32,PIN31);
-I2C master(PTC9,PTC8);
-//DigitalOut led1(PIN46);
-//DigitalOut led2(PIN95);
const int addr = 0x20; //slave address
-char telecommand[tc_len];
-char telemetry[tm_len];
-//Timer test;
-//Timer t_read;
-bool write_ack = true;
-bool read_ack = true;
+bool write_ack = false;
+bool read_ack = false;
+const int addr_pl = 0x20<<1; //PL address
+uint8_t rcv_isr = 0;
int count = 0;
-void FCTN_I2C_WRITE(char *data)
+char PL_I2C_DATA[134];//Payload i2c array
+uint8_t PL_TM_SIZE;//size of data to bev read from i2c
+
+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 == 1)
{
-// 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();
+ printf("\n\rdata not sent\n");
+ }
}
-
-void FCTN_I2C_READ(char *data,int length)
+void isr_pyldtm()
{
- irpt_2_slv = 1;
- //t_read.start();
- read_ack = master.read(addr|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");
- irpt_2_slv = 0;
- //printf("\n\r %d \n",t.read_us());
- //t.reset();
+ read_ack = master.read(addr_pl|1,PL_I2C_DATA,134);
+ gLEDR=!gLEDR;
+ rcv_isr = 1;
}
\ No newline at end of file
