aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Drivers/I2C_Communication/I2C.h
blob: eb5ea03dee3b1464d8a6fa03e9f8491e3879d354 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/*
 * I2C.h
 *
 *  Created on: Jun 6, 2018
 *      Author: avi
 */

#ifndef DRIVERS_I2C_COMMUNICATION_I2C_H_
#define DRIVERS_I2C_COMMUNICATION_I2C_H_

extern uint32_t Arb_Loss_Count;

extern uint32_t I2C_BUSY_DELAY;

extern uint32_t I2C_2_3_BUSY_DELAY;  //I2C2_BASE, I2C3_BASE
extern uint32_t  I2C_4_BUSY_DELAY; //I2C4_BASE (RFID + Dispensers)

//#define I2C_BUSY_DELAY 100//15000

uint32_t I2C_control(uint32_t I2C_ID, uint32_t Slave_Add, bool RW,uint32_t Byte2Write );
void Init_All_I2C();
void I2C_ReadingTask_Init(void);

extern uint16_t ReadFailures;

//-------------------------------------------------------------------------------------------------------------

//uint32_t I2C_Write(uint32_t I2C_ID, uint32_t Slave_Add, uint32_t No_BytesTWrite, uint32_t *Bytes2Write );
uint32_t I2C_WriteBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data, unsigned int len);

uint32_t I2C_ReadBuff(uint32_t I2C_BASE, unsigned char addr, unsigned char* data, unsigned int len);

uint32_t I2C_Write(uint32_t I2C_ID, uint32_t Slave_Add, uint8_t *I2C_Write_buf, uint32_t No_BytesToWrite );
uint32_t I2C_Read(uint32_t I2C_ID, uint32_t Slave_Add, uint8_t *I2C_Read_buf, uint32_t No_BytesToRead );

uint32_t Block_Main_MUX_TCA9548A_0xE4(); ////unused I2C MUX

extern uint8_t Main_Mux_Flag ;
extern Semaphore_Handle I2C_Sem;
extern Task_Handle I2C_Task_Handle;

#endif /* DRIVERS_I2C_COMMUNICATION_I2C_H_ */