17
17
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18
18
19
19
Modified 2012 by Todd Krein ([email protected] ) to implement repeated starts
20
+ Modified 2014 by Mickael Germain to define names for twi errors.
20
21
*/
21
22
22
23
#include <math.h>
@@ -217,19 +218,19 @@ uint8_t twi_readFrom(uint8_t address, uint8_t* data, uint8_t length, uint8_t sen
217
218
* length: number of bytes in array
218
219
* wait: boolean indicating to wait for write or not
219
220
* sendStop: boolean indicating whether or not to send a stop at the end
220
- * Output 0 .. success
221
- * 1 .. length to long for buffer
222
- * 2 .. address send, NACK received
223
- * 3 .. data send, NACK received
224
- * 4 .. other twi error (lost bus arbitration, bus error, ..)
221
+ * Output TWI_SUCCESS .. success
222
+ * TWI_DATA_TOO_LONG .. length to long for buffer
223
+ * TWI_NACK_ON_ADDR .. address send, NACK received
224
+ * TWI_NACK_ON_DATA .. data send, NACK received
225
+ * TWI_OTHER_ERROR .. other twi error (lost bus arbitration, bus error, ..)
225
226
*/
226
227
uint8_t twi_writeTo (uint8_t address , uint8_t * data , uint8_t length , uint8_t wait , uint8_t sendStop )
227
228
{
228
229
uint8_t i ;
229
230
230
231
// ensure data will fit into buffer
231
232
if (TWI_BUFFER_LENGTH < length ){
232
- return 1 ;
233
+ return TWI_DATA_TOO_LONG ;
233
234
}
234
235
235
236
// wait until twi is ready, become master transmitter
@@ -280,13 +281,13 @@ uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait
280
281
}
281
282
282
283
if (twi_error == 0xFF )
283
- return 0 ; // success
284
+ return TWI_SUCCESS ; // success
284
285
else if (twi_error == TW_MT_SLA_NACK )
285
- return 2 ; // error: address send, nack received
286
+ return TWI_NACK_ON_ADDR ; // error: address send, nack received
286
287
else if (twi_error == TW_MT_DATA_NACK )
287
- return 3 ; // error: data send, nack received
288
+ return TWI_NACK_ON_DATA ; // error: data send, nack received
288
289
else
289
- return 4 ; // other twi error
290
+ return TWI_OTHER_ERROR ; // other twi error
290
291
}
291
292
292
293
/*
@@ -295,22 +296,22 @@ uint8_t twi_writeTo(uint8_t address, uint8_t* data, uint8_t length, uint8_t wait
295
296
* must be called in slave tx event callback
296
297
* Input data: pointer to byte array
297
298
* length: number of bytes in array
298
- * Output 1 length too long for buffer
299
- * 2 not slave transmitter
300
- * 0 ok
299
+ * Output TWI_DATA_TOO_LONG .. length too long for buffer
300
+ * TWI_NOT_SLAVE_TX .. not slave transmitter
301
+ * 0 .. ok
301
302
*/
302
303
uint8_t twi_transmit (const uint8_t * data , uint8_t length )
303
304
{
304
305
uint8_t i ;
305
306
306
307
// ensure data will fit into buffer
307
308
if (TWI_BUFFER_LENGTH < (twi_txBufferLength + length )){
308
- return 1 ;
309
+ return TWI_DATA_TOO_LONG ;
309
310
}
310
311
311
312
// ensure we are currently a slave transmitter
312
313
if (TWI_STX != twi_state ){
313
- return 2 ;
314
+ return TWI_NOT_SLAVE_TX ;
314
315
}
315
316
316
317
// set length and copy data into tx buffer
0 commit comments