27 #define EUSCI_B_I2C_NO_AUTO_STOP EUSCI_B_CTLW1_ASTP_0
28 #define EUSCI_B_I2C_SET_BYTECOUNT_THRESHOLD_FLAG EUSCI_B_CTLW1_ASTP_1
29 #define EUSCI_B_I2C_SEND_STOP_AUTOMATICALLY_ON_BYTECOUNT_THRESHOLD \
32 #define EUSCI_B_I2C_SET_DATA_RATE_1MBPS 1000000
33 #define EUSCI_B_I2C_SET_DATA_RATE_400KBPS 400000
34 #define EUSCI_B_I2C_SET_DATA_RATE_100KBPS 100000
36 #define EUSCI_B_I2C_CLOCKSOURCE_ACLK EUSCI_B_CTLW0_SSEL__ACLK
37 #define EUSCI_B_I2C_CLOCKSOURCE_SMCLK EUSCI_B_CTLW0_SSEL__SMCLK
39 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET0 0x00
40 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET1 0x02
41 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET2 0x04
42 #define EUSCI_B_I2C_OWN_ADDRESS_OFFSET3 0x06
44 #define EUSCI_B_I2C_OWN_ADDRESS_DISABLE 0x00
45 #define EUSCI_B_I2C_OWN_ADDRESS_ENABLE EUSCI_B_I2COA0_OAEN
47 #define EUSCI_B_I2C_TRANSMIT_MODE EUSCI_B_CTLW0_TR
48 #define EUSCI_B_I2C_RECEIVE_MODE 0x00
50 #define EUSCI_B_I2C_NAK_INTERRUPT EUSCI_B_IE_NACKIE
51 #define EUSCI_B_I2C_ARBITRATIONLOST_INTERRUPT EUSCI_B_IE_ALIE
52 #define EUSCI_B_I2C_STOP_INTERRUPT EUSCI_B_IE_STPIE
53 #define EUSCI_B_I2C_START_INTERRUPT EUSCI_B_IE_STTIE
54 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT0 EUSCI_B_IE_TXIE0
55 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT1 EUSCI_B_IE_TXIE1
56 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT2 EUSCI_B_IE_TXIE2
57 #define EUSCI_B_I2C_TRANSMIT_INTERRUPT3 EUSCI_B_IE_TXIE3
58 #define EUSCI_B_I2C_RECEIVE_INTERRUPT0 EUSCI_B_IE_RXIE0
59 #define EUSCI_B_I2C_RECEIVE_INTERRUPT1 EUSCI_B_IE_RXIE1
60 #define EUSCI_B_I2C_RECEIVE_INTERRUPT2 EUSCI_B_IE_RXIE2
61 #define EUSCI_B_I2C_RECEIVE_INTERRUPT3 EUSCI_B_IE_RXIE3
62 #define EUSCI_B_I2C_BIT9_POSITION_INTERRUPT EUSCI_B_IE_BIT9IE
63 #define EUSCI_B_I2C_CLOCK_LOW_TIMEOUT_INTERRUPT EUSCI_B_IE_CLTOIE
64 #define EUSCI_B_I2C_BYTE_COUNTER_INTERRUPT EUSCI_B_IE_BCNTIE
66 #define EUSCI_B_I2C_BUS_BUSY EUSCI_B_STATW_BBUSY
67 #define EUSCI_B_I2C_BUS_NOT_BUSY 0x00
69 #define EUSCI_B_I2C_STOP_SEND_COMPLETE 0x00
70 #define EUSCI_B_I2C_SENDING_STOP EUSCI_B_CTLW0_TXSTP
72 #define EUSCI_B_I2C_START_SEND_COMPLETE 0x00
73 #define EUSCI_B_I2C_SENDING_START EUSCI_B_CTLW0_TXSTT
188 extern void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress,
189 uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable);
259 uint_fast16_t slaveAddress);
284 extern void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode);
311 extern uint_fast8_t
I2C_getMode(uint32_t moduleInstance);
336 extern void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData);
446 uint8_t txData, uint32_t timeout);
507 uint8_t txData, uint32_t timeout);
565 uint8_t txData, uint32_t timeout);
626 uint8_t txData, uint32_t timeout);
791 uint8_t *txData, uint32_t timeout);
1285 void (*intHandler)(
void));
1334 #define EUSCI_B_I2C_slaveInit I2C_initSlave
1335 #define EUSCI_B_I2C_enable I2C_enableModule
1336 #define EUSCI_B_I2C_disable I2C_disableModule
1337 #define EUSCI_B_I2C_setSlaveAddress I2C_setSlaveAddress
1338 #define EUSCI_B_I2C_setMode I2C_setMode
1339 #define EUSCI_B_I2C_getMode I2C_getMode
1340 #define EUSCI_B_I2C_slaveDataPut I2C_slavePutData
1341 #define EUSCI_B_I2C_slaveDataGet I2C_slaveGetData
1342 #define EUSCI_B_I2C_isBusBusy I2C_isBusBusy
1343 #define EUSCI_B_I2C_masterIsStopSent I2C_masterIsStopSent
1344 #define EUSCI_B_I2C_masterIsStartSent I2C_masterIsStartSent
1345 #define EUSCI_B_I2C_enableInterrupt I2C_enableInterrupt
1346 #define EUSCI_B_I2C_disableInterrupt I2C_disableInterrupt
1347 #define EUSCI_B_I2C_clearInterruptFlag I2C_clearInterruptFlag
1348 #define EUSCI_B_I2C_getInterruptStatus I2C_getEnabledInterruptStatus
1349 #define EUSCI_B_I2C_masterSendSingleByte I2C_masterSendSingleByte
1350 #define EUSCI_B_I2C_masterReceiveSingleByte I2C_masterReceiveSingleByte
1351 #define EUSCI_B_I2C_masterSendSingleByteWithTimeout I2C_masterSendSingleByteWithTimeout
1352 #define EUSCI_B_I2C_masterMultiByteSendStart I2C_masterSendMultiByteStart
1353 #define EUSCI_B_I2C_masterMultiByteSendStartWithTimeout I2C_masterSendMultiByteStartWithTimeout
1354 #define EUSCI_B_I2C_masterMultiByteSendNext I2C_masterSendMultiByteNext
1355 #define EUSCI_B_I2C_masterMultiByteSendNextWithTimeout I2C_masterSendMultiByteNextWithTimeout
1356 #define EUSCI_B_I2C_masterMultiByteSendFinish I2C_masterSendMultiByteFinish
1357 #define EUSCI_B_I2C_masterMultiByteSendFinishWithTimeout I2C_masterSendMultiByteFinishWithTimeout
1358 #define EUSCI_B_I2C_masterSendStart I2C_masterSendStart
1359 #define EUSCI_B_I2C_masterMultiByteSendStop I2C_masterSendMultiByteStop
1360 #define EUSCI_B_I2C_masterMultiByteSendStopWithTimeout I2C_masterSendMultiByteStopWithTimeout
1361 #define EUSCI_B_I2C_masterReceiveStart I2C_masterReceiveStart
1362 #define EUSCI_B_I2C_masterMultiByteReceiveNext I2C_masterReceiveMultiByteNext
1363 #define EUSCI_B_I2C_masterMultiByteReceiveFinish I2C_masterReceiveMultiByteFinish
1364 #define EUSCI_B_I2C_masterMultiByteReceiveFinishWithTimeout I2C_masterReceiveMultiByteFinishWithTimeout
1365 #define EUSCI_B_I2C_masterMultiByteReceiveStop I2C_masterReceiveMultiByteStop
1366 #define EUSCI_B_I2C_enableMultiMasterMode I2C_enableMultiMasterMode
1367 #define EUSCI_B_I2C_disableMultiMasterMode I2C_disableMultiMasterMode
1368 #define EUSCI_B_I2C_masterSingleReceive I2C_masterReceiveSingle
1369 #define EUSCI_B_I2C_getReceiveBufferAddressForDMA I2C_getReceiveBufferAddressForDMA
1370 #define EUSCI_B_I2C_getTransmitBufferAddressForDMA I2C_getTransmitBufferAddressForDMA
void I2C_slaveSendNAK(uint32_t moduleInstance)
Definition: i2c.c:725
bool I2C_masterSendMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:351
bool I2C_masterSendMultiByteStartWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:256
void I2C_setMode(uint32_t moduleInstance, uint_fast8_t mode)
Definition: i2c.c:106
uint8_t I2C_masterReceiveSingleByte(uint32_t moduleInstance)
Definition: i2c.c:118
void I2C_disableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:582
uint32_t dataRate
Definition: i2c.h:89
bool I2C_masterSendMultiByteStopWithTimeout(uint32_t moduleInstance, uint32_t timeout)
Definition: i2c.c:404
void I2C_masterReceiveMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:495
uint8_t I2C_masterReceiveMultiByteFinish(uint32_t moduleInstance)
Definition: i2c.c:441
uint8_t I2C_masterReceiveSingle(uint32_t moduleInstance)
Definition: i2c.c:501
uint_fast8_t byteCounterThreshold
Definition: i2c.h:90
uint8_t I2C_isBusBusy(uint32_t moduleInstance)
Definition: i2c.c:146
uint32_t I2C_getTransmitBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:520
uint_fast8_t autoSTOPGeneration
Definition: i2c.h:91
bool I2C_masterIsStartSent(uint32_t moduleInstance)
Definition: i2c.c:531
uint8_t I2C_masterIsStopSent(uint32_t moduleInstance)
Definition: i2c.c:525
bool I2C_masterSendSingleByteWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:185
bool I2C_masterSendMultiByteNextWithTimeout(uint32_t moduleInstance, uint8_t txData, uint32_t timeout)
Definition: i2c.c:305
uint_fast16_t I2C_getEnabledInterruptStatus(uint32_t moduleInstance)
Definition: i2c.c:655
void I2C_masterSendMultiByteStart(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:234
bool I2C_masterReceiveMultiByteFinishWithTimeout(uint32_t moduleInstance, uint8_t *txData, uint32_t timeout)
Definition: i2c.c:460
void I2C_registerInterrupt(uint32_t moduleInstance, void(*intHandler)(void))
Definition: i2c.c:667
void I2C_slavePutData(uint32_t moduleInstance, uint8_t transmitData)
Definition: i2c.c:134
uint_fast8_t I2C_getMode(uint32_t moduleInstance)
Gets the mode of the I2C device.
Definition: i2c.c:661
void I2C_masterReceiveStart(uint32_t moduleInstance)
Definition: i2c.c:428
uint8_t I2C_masterReceiveMultiByteNext(uint32_t moduleInstance)
Definition: i2c.c:436
void I2C_initMaster(uint32_t moduleInstance, const eUSCI_I2C_MasterConfig *config)
Definition: i2c.c:6
uint_fast16_t I2C_getInterruptStatus(uint32_t moduleInstance, uint16_t mask)
Definition: i2c.c:631
void I2C_masterSendMultiByteNext(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:290
void I2C_initSlave(uint32_t moduleInstance, uint_fast16_t slaveAddress, uint_fast8_t slaveAddressOffset, uint32_t slaveOwnAddressEnable)
Definition: i2c.c:62
void I2C_clearInterruptFlag(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:607
void I2C_masterSendMultiByteFinish(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:329
void I2C_masterSendSingleByte(uint32_t moduleInstance, uint8_t txData)
Definition: i2c.c:153
void I2C_unregisterInterrupt(uint32_t moduleInstance)
Definition: i2c.c:696
uint32_t i2cClk
Definition: i2c.h:88
void I2C_enableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:543
uint32_t I2C_getReceiveBufferAddressForDMA(uint32_t moduleInstance)
Definition: i2c.c:515
void I2C_masterSendStart(uint32_t moduleInstance)
Definition: i2c.c:537
void I2C_enableInterrupt(uint32_t moduleInstance, uint_fast16_t mask)
Definition: i2c.c:557
uint8_t I2C_slaveGetData(uint32_t moduleInstance)
Definition: i2c.c:140
void I2C_masterSendMultiByteStop(uint32_t moduleInstance)
Definition: i2c.c:389
void I2C_setSlaveAddress(uint32_t moduleInstance, uint_fast16_t slaveAddress)
Definition: i2c.c:100
void I2C_disableModule(uint32_t moduleInstance)
Definition: i2c.c:92
void I2C_disableMultiMasterMode(uint32_t moduleInstance)
Definition: i2c.c:550
uint_fast8_t selectClockSource
Definition: i2c.h:87
void I2C_enableModule(uint32_t moduleInstance)
Definition: i2c.c:85