pl ack in tmtc
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of COM_MNG_TMTC_SIMPLE_pl123 by
i2c.h
00001 #define tm_len 134 00002 #define tc_len 135 00003 #define tc_test_len 135 00004 00005 InterruptIn irpt_4m_slv(D3); //I2c interrupt from CDMS 00006 DigitalOut irpt_2_slv(D4); //I2C interrupt to CDMS 00007 //I2C master(PTC9,PTC8); 00008 const int addr = 0x20; //slave address 00009 const int addr_pl = 0x20<<1; //PL slave address 00010 00011 bool write_ack = true; 00012 bool read_ack = true; 00013 00014 00015 00016 uint8_t PL_TM_SIZE;//size of data to bev read from i2c 00017 00018 int FCTN_I2C_WRITE_PL(char *data2,uint8_t tc_len2) 00019 { 00020 write_ack = master.write(addr_pl|0x00,data2,tc_len2);//address to be defined in payload 00021 if(write_ack == 1) 00022 { 00023 printf("\n\rdata not sent\n"); 00024 } 00025 return write_ack; 00026 00027 } 00028 void FCTN_I2C_READ_PL(char *data,int length) 00029 { 00030 //t_read.start(); 00031 read_ack = master.read(addr_pl|1,data,length); 00032 //t_read.stop(); 00033 uint8_t len = 0; 00034 00035 printf("\n\r i2c data : \n\n\r\r"); 00036 while(len != length) printf("%c",data[len]); 00037 printf(" \n\n\r\r"); 00038 if(read_ack == 0) 00039 printf("\n\rData received from PL %s \n",data); 00040 if (read_ack == 1) 00041 { 00042 // gLEDR = 1; 00043 printf("\n \r data not received from PL\n"); 00044 // gLEDR = 0; 00045 } 00046 //if(read_ack == 1) 00047 //pc.printf("\n \r data not received \n"); 00048 //printf("\n\r %d \n",t.read_us()); 00049 //t.reset(); 00050 } 00051 00052 void FCTN_I2C_READ(char *data,int length, int addr) 00053 { 00054 irpt_2_slv = 1; 00055 //t_read.start(); 00056 read_ack = master.read(addr|1,data,length); 00057 //t_read.stop(); 00058 00059 //if(read_ack == 0) 00060 // printf("\n\rData received from BAE %s \n",data); 00061 if (read_ack == 1) 00062 { 00063 printf("\n \r data not received \n"); 00064 } 00065 //if(read_ack == 1) 00066 //pc.printf("\n \r data not received \n"); 00067 00068 irpt_2_slv = 0; 00069 //printf("\n\r %d \n",t.read_us()); 00070 //t.reset(); 00071 } 00072 00073 void FCTN_I2C_WRITE(char *data) 00074 { 00075 irpt_2_slv = 1; 00076 //t.start(); 00077 write_ack = master.write(addr|0x00,data,tc_len); 00078 //t.stop(); 00079 //if(write_ack == 0) 00080 //gPC.printf("\n\r data not sent \n"); 00081 00082 if (write_ack == 0) 00083 { 00084 // led2 = 1; 00085 //gPC.printf("\n\r data not sent \n"); 00086 // led2 = 0; 00087 } 00088 irpt_2_slv = 0; 00089 //gPC.printf("\n\r %d \n",t.read_us()); 00090 //t.reset(); 00091 } 00092 00093 00094 const int addr1 = (0x20<<1|0); 00095 const int addr2 = (0x20<<1|1); 00096 00097 00098 00099 00100 00101 00102 00103 00104 void isr_pyldtm() 00105 { 00106 gLEDR=!gLEDR; 00107 read_ack = master.read(addr1,PL_I2C_DATA,134); 00108 rcv_isr = 1; 00109 }
Generated on Wed Jul 20 2022 09:24:44 by 1.7.2