ATY_LIB V2_102_230218
ATY_LIB for general devices or ALGO
 
Loading...
Searching...
No Matches
fw_i2c.c File Reference
#include "fw_i2c.h"

Go to the source code of this file.

Functions

uint8_t I2C_Write (uint8_t devAddr, uint8_t memAddr, uint8_t *dat, uint16_t size)
 
uint8_t I2C_Read (uint8_t devAddr, uint8_t memAddr, uint8_t *buf, uint16_t size)
 
uint8_t I2C_Write16BitAddr (uint8_t devAddr, uint16_t memAddr, uint8_t *dat, uint16_t size)
 
uint8_t I2C_Read16BitAddr (uint8_t devAddr, uint16_t memAddr, uint8_t *buf, uint16_t size)
 

Function Documentation

◆ I2C_Read()

uint8_t I2C_Read ( uint8_t  devAddr,
uint8_t  memAddr,
uint8_t buf,
uint16_t  size 
)

Definition at line 36 of file fw_i2c.c.

37{
38 SFRX_ON();
40 I2C_MasterSendData(devAddr & 0xFE);
42 I2C_MasterSendData(memAddr);
45 I2C_MasterSendData(devAddr | 0x01);
47 while(size--)
48 {
50 *buf++ = I2CRXD;
51 if (size == 0)
52 {
54 }
55 else
56 {
58 }
59 }
61 SFRX_OFF();
62 return HAL_OK;
63}
#define I2C_MasterSendData(__DATA__)
Definition: fw_i2c.h:84
#define I2C_MasterRxAck()
Definition: fw_i2c.h:85
#define I2C_SendMasterCmd(__CMD__)
Definition: fw_i2c.h:77
@ I2C_MasterCmd_Recv
Definition: fw_i2c.h:35
#define I2C_MasterStart()
Definition: fw_i2c.h:83
#define I2C_MasterAck()
Definition: fw_i2c.h:86
#define I2C_MasterNAck()
Definition: fw_i2c.h:87
#define I2C_MasterStop()
Definition: fw_i2c.h:88
#define I2CRXD
#define SFRX_ON()
Definition: fw_types.h:112
@ HAL_OK
Definition: fw_types.h:76
#define SFRX_OFF()
Definition: fw_types.h:113

◆ I2C_Read16BitAddr()

uint8_t I2C_Read16BitAddr ( uint8_t  devAddr,
uint16_t  memAddr,
uint8_t buf,
uint16_t  size 
)

Definition at line 85 of file fw_i2c.c.

86{
87 SFRX_ON();
89 I2C_MasterSendData(devAddr & 0xFE);
91 I2C_MasterSendData(memAddr >> 8);
93 I2C_MasterSendData(memAddr & 0xFF);
96 I2C_MasterSendData(devAddr | 0x01);
98 while(size--)
99 {
101 *buf++ = I2CRXD;
102 if (size == 0)
103 {
105 }
106 else
107 {
109 }
110 }
112 SFRX_OFF();
113 return HAL_OK;
114}

◆ I2C_Write()

uint8_t I2C_Write ( uint8_t  devAddr,
uint8_t  memAddr,
uint8_t dat,
uint16_t  size 
)

Definition at line 18 of file fw_i2c.c.

19{
20 SFRX_ON();
22 I2C_MasterSendData(devAddr & 0xFE);
24 I2C_MasterSendData(memAddr);
26 while(size--)
27 {
30 }
32 SFRX_OFF();
33 return HAL_OK;
34}
__CODE int8_t dat[20]

◆ I2C_Write16BitAddr()

uint8_t I2C_Write16BitAddr ( uint8_t  devAddr,
uint16_t  memAddr,
uint8_t dat,
uint16_t  size 
)

Definition at line 65 of file fw_i2c.c.

66{
67 SFRX_ON();
69 I2C_MasterSendData(devAddr & 0xFE);
71 I2C_MasterSendData(memAddr >> 8);
73 I2C_MasterSendData(memAddr & 0xFF);
75 while(size--)
76 {
79 }
81 SFRX_OFF();
82 return HAL_OK;
83}