28 #define EUSCI_B_I2C_NO_AUTO_STOP UCASTP_0
29 #define EUSCI_B_I2C_SET_BYTECOUNT_THRESHOLD_FLAG UCASTP_1
30 #define EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD UCASTP_2
32 #define EUSCI_B_I2C_SET_DATA_RATE_400KBPS 400000
33 #define EUSCI_B_I2C_SET_DATA_RATE_100KBPS 100000
35 #define EUSCI_B_I2C_CLOCKSOURCE_ACLK UCSSEL__ACLK
36 #define EUSCI_B_I2C_CLOCKSOURCE_SMCLK UCSSEL__SMCLK
38 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET0 0x00
39 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET1 0x02
40 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET2 0x04
41 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET3 0x06
43 #define EUSCI_B_I2C_OWN_ADDRESS_DISABLE 0x00
44 #define EUSCI_B_I2C_OWN_ADDRESS_ENABLE UCOAEN
46 #define EUSCI_B_I2C_TRANSMIT_MODE UCTR
47 #define EUSCI_B_I2C_RECEIVE_MODE 0x00
49 #define EUSCI_B_I2C_NAK_INTERRUPT UCNACKIE
50 #define EUSCI_B_I2C_ARBITRATIONLOST_INTERRUPT UCALIE
51 #define EUSCI_B_I2C_STOP_INTERRUPT UCSTPIE
52 #define EUSCI_B_I2C_START_INTERRUPT UCSTTIE
53 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT0 UCTXIE0
54 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT1 UCTXIE1
55 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT2 UCTXIE2
56 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT3 UCTXIE3
57 #define EUSCI_B_I2C_RECEIVE_INTERRUPT0 UCRXIE0
58 #define EUSCI_B_I2C_RECEIVE_INTERRUPT1 UCRXIE1
59 #define EUSCI_B_I2C_RECEIVE_INTERRUPT2 UCRXIE2
60 #define EUSCI_B_I2C_RECEIVE_INTERRUPT3 UCRXIE3
61 #define EUSCI_B_I2C_BIT9_POSITION_INTERRUPT UCBIT9IE
62 #define EUSCI_B_I2C_CLOCK_LOW_TIMEOUT_INTERRUPT UCCLTOIE
63 #define EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT UCBCNTIE
65 #define EUSCI_B_I2C_BUS_BUSY UCBBUSY
66 #define EUSCI_B_I2C_BUS_NOT_BUSY 0x00
68 #define EUSCI_B_I2C_STOP_SEND_COMPLETE 0x00
69 #define EUSCI_B_I2C_SENDING_STOP UCTXSTP
71 #define EUSCI_B_I2C_START_SEND_COMPLETE 0x00
72 #define EUSCI_B_I2C_SENDING_START UCTXSTT
190 extern void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress,
191 uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable);
261 uint_fast16_t slaveAddress);
286 extern void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode);
313 extern uint_fast8_t
I2C_getMode(uint32_t moduleInstance);
338 extern void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData);
448 uint8_t txData, uint32_t timeout);
509 uint8_t txData, uint32_t timeout);
567 uint8_t txData, uint32_t timeout);
628 uint8_t txData, uint32_t timeout);
793 uint8_t *txData, uint32_t timeout);
1287 void (*intHandler)(
void));
1316 #define EUSCI_B_I2C_slaveInit I2C_initSlave
1317 #define EUSCI_B_I2C_enable I2C_enableModule
1318 #define EUSCI_B_I2C_disable I2C_disableModule
1319 #define EUSCI_B_I2C_setSlaveAddress I2C_setSlaveAddress
1320 #define EUSCI_B_I2C_setMode I2C_setMode
1321 #define EUSCI_B_I2C_getMode I2C_getMode
1322 #define EUSCI_B_I2C_slaveDataPut I2C_slavePutData
1323 #define EUSCI_B_I2C_slaveDataGet I2C_slaveGetData
1324 #define EUSCI_B_I2C_isBusBusy I2C_isBusBusy
1325 #define EUSCI_B_I2C_masterIsStopSent I2C_masterIsStopSent
1326 #define EUSCI_B_I2C_masterIsStartSent I2C_masterIsStartSent
1327 #define EUSCI_B_I2C_enableInterrupt I2C_enableInterrupt
1328 #define EUSCI_B_I2C_disableInterrupt I2C_disableInterrupt
1329 #define EUSCI_B_I2C_clearInterruptFlag I2C_clearInterruptFlag
1330 #define EUSCI_B_I2C_getInterruptStatus I2C_getEnabledInterruptStatus
1331 #define EUSCI_B_I2C_masterSendSingleByte I2C_masterSendSingleByte
1332 #define EUSCI_B_I2C_masterReceiveSingleByte I2C_masterReceiveSingleByte
1333 #define EUSCI_B_I2C_masterSendSingleByteWithTimeout I2C_masterSendSingleByteWithTimeout
1334 #define EUSCI_B_I2C_masterMultiByteSendStart I2C_masterSendMultiByteStart
1335 #define EUSCI_B_I2C_masterMultiByteSendStartWithTimeout I2C_masterSendMultiByteStartWithTimeout
1336 #define EUSCI_B_I2C_masterMultiByteSendNext I2C_masterSendMultiByteNext
1337 #define EUSCI_B_I2C_masterMultiByteSendNextWithTimeout I2C_masterSendMultiByteNextWithTimeout
1338 #define EUSCI_B_I2C_masterMultiByteSendFinish I2C_masterSendMultiByteFinish
1339 #define EUSCI_B_I2C_masterMultiByteSendFinishWithTimeout I2C_masterSendMultiByteFinishWithTimeout
1340 #define EUSCI_B_I2C_masterSendStart I2C_masterSendStart
1341 #define EUSCI_B_I2C_masterMultiByteSendStop I2C_masterSendMultiByteStop
1342 #define EUSCI_B_I2C_masterMultiByteSendStopWithTimeout I2C_masterSendMultiByteStopWithTimeout
1343 #define EUSCI_B_I2C_masterReceiveStart I2C_masterReceiveStart
1344 #define EUSCI_B_I2C_masterMultiByteReceiveNext I2C_masterReceiveMultiByteNext
1345 #define EUSCI_B_I2C_masterMultiByteReceiveFinish I2C_masterReceiveMultiByteFinish
1346 #define EUSCI_B_I2C_masterMultiByteReceiveFinishWithTimeout I2C_masterReceiveMultiByteFinishWithTimeout
1347 #define EUSCI_B_I2C_masterMultiByteReceiveStop I2C_masterReceiveMultiByteStop
1348 #define EUSCI_B_I2C_enableMultiMasterMode I2C_enableMultiMasterMode
1349 #define EUSCI_B_I2C_disableMultiMasterMode I2C_disableMultiMasterMode
1350 #define EUSCI_B_I2C_masterSingleReceive I2C_masterReceiveSingle
1351 #define EUSCI_B_I2C_getReceiveBufferAddressForDMA I2C_getReceiveBufferAddressForDMA
1352 #define EUSCI_B_I2C_getTransmitBufferAddressForDMA I2C_getTransmitBufferAddressForDMA
bool I2C_masterSendMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:343
bool I2C_masterSendMultiByteStartWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:248
void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode)
Definition: i2c.c:99
uint8_t I2C_masterReceiveSingleByte(uint32_t moduleInstance)
Definition: i2c.c:111
void I2C_disableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:567
bool I2C_masterSendMultiByteStopWithTimeout(uint32_t moduleInstance, uint32_t timeout)
Definition: i2c.c:396
void I2C_masterReceiveMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:485
uint8_t I2C_masterReceiveMultiByteFinish(uint32_t moduleInstance)
Definition: i2c.c:432
uint8_t I2C_masterReceiveSingle(uint32_t moduleInstance)
Definition: i2c.c:491
uint32_t i2cClk
Definition: i2c.h:87
void I2C_initMaster(uint32_t moduleInstance, const I2C_MasterConfig *config)
Definition: i2c.c:5
uint8_t I2C_isBusBusy(uint32_t moduleInstance)
Definition: i2c.c:139
uint32_t dataRate
Definition: i2c.h:88
uint32_t I2C_getTransmitBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:510
bool I2C_masterIsStartSent(uint32_t moduleInstance)
Definition: i2c.c:520
uint8_t I2C_masterIsStopSent(uint32_t moduleInstance)
Definition: i2c.c:515
bool I2C_masterSendSingleByteWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:177
uint_fast8_t byteCounterThreshold
Definition: i2c.h:89
bool I2C_masterSendMultiByteNextWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:297
uint_fast16_t I2C_getEnabledInterruptStatus(uint32_t moduleInstance)
Definition: i2c.c:640
void I2C_masterSendMultiByteStart(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:226
uint_fast8_t autoSTOPGeneration
Definition: i2c.h:90
bool I2C_masterReceiveMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t *txData, uint32_t timeout)
Definition: i2c.c:450
void I2C_registerInterrupt(uint32_t moduleInstance, void(*intHandler)(void))
Definition: i2c.c:652
void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData)
Definition: i2c.c:127
uint_fast8_t I2C_getMode(uint32_t moduleInstance)
Gets the mode of the I2C device.
Definition: i2c.c:646
void I2C_masterReceiveStart(uint32_t moduleInstance)
Definition: i2c.c:420
uint8_t I2C_masterReceiveMultiByteNext(uint32_t moduleInstance)
Definition: i2c.c:427
uint_fast16_t I2C_getInterruptStatus(uint32_t moduleInstance, uint16_t mask)
Definition: i2c.c:616
void I2C_masterSendMultiByteNext(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:282
uint_fast8_t selectClockSource
Definition: i2c.h:86
void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress, uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable)
Definition: i2c.c:58
void I2C_clearInterruptFlag(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:592
void I2C_masterSendMultiByteFinish(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:321
void I2C_masterSendSingleByte(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:145
void I2C_unregisterInterrupt(uint32_t moduleInstance)
Definition: i2c.c:681
void I2C_enableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:530
uint32_t I2C_getReceiveBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:505
void I2C_masterSendStart(uint32_t moduleInstance)
Definition: i2c.c:525
void I2C_enableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:542
uint8_t I2C_slaveGetData(uint32_t moduleInstance)
Definition: i2c.c:133
void I2C_masterSendMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:381
void I2C_setSlaveAddress(uint32_t moduleInstance, uint_fast16_t slaveAddress)
Definition: i2c.c:93
void I2C_disableModule(uint32_t moduleInstance)
Definition: i2c.c:86
void I2C_disableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:536
void I2C_enableModule(uint32_t moduleInstance)
Definition: i2c.c:80