aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2010-12-26 14:25:34 +0000
committerDean Camera <dean@fourwalledcubicle.com>2010-12-26 14:25:34 +0000
commit2073b96d82433607bd287e3b6529fd0d3cc428cd (patch)
tree680767a0fba855e26799e392a59d4b0b6d8be4df /LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
parent39ac72f2d12a9c62b2e876de4eee6c34a864ff74 (diff)
downloadlufa-2073b96d82433607bd287e3b6529fd0d3cc428cd.tar.gz
lufa-2073b96d82433607bd287e3b6529fd0d3cc428cd.tar.bz2
lufa-2073b96d82433607bd287e3b6529fd0d3cc428cd.zip
Added basic driver example use code to the library documentation.
Made the USARTStream global public and documented in the SerialStream module, allowing for the serial USART stream to be accessed via its handle rather than via the implicit stdout and stdin streams.
Diffstat (limited to 'LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h')
-rw-r--r--LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
index 67171b3f2..c6fb42009 100644
--- a/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
+++ b/LUFA/Drivers/Peripheral/AVRU4U6U7/TWI.h
@@ -45,6 +45,37 @@
* \note This file should not be included directly. It is automatically included as needed by the TWI driver
* dispatch header located in LUFA/Drivers/Peripheral/TWI.h.
*
+ * <b>Example Usage:</b>
+ * \code
+ * // Initialise the TWI driver before first use
+ * TWI_Init();
+ *
+ * // Start a write session to device at address 0xA0 with a 10ms timeout
+ * if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_WRITE, 10))
+ * {
+ * TWI_SendByte(0x01);
+ * TWI_SendByte(0x02);
+ * TWI_SendByte(0x03);
+ *
+ * // Must stop transmission afterwards to release the bus
+ * TWI_StopTransmission();
+ * }
+ *
+ * // Start a read session to device at address 0xA0 with a 10ms timeout
+ * if (TWI_StartTransmission(0xA0 | TWI_ADDRESS_READ, 10))
+ * {
+ * uint8_t Byte1, Byte2, Byte3;
+ *
+ * // Read three bytes, acknowledge after the third byte is received
+ * TWI_ReceiveByte(&Byte1, false);
+ * TWI_ReceiveByte(&Byte2, false);
+ * TWI_ReceiveByte(&Byte3, true);
+ *
+ * // Must stop transmission afterwards to release the bus
+ * TWI_StopTransmission();
+ * }
+ * \endcode
+ *
* @{
*/
@@ -70,6 +101,17 @@
#endif
/* Public Interface - May be used in end-application: */
+ /* Macros: */
+ /** TWI slave device address mask for a read session. Mask with a slave device base address to obtain
+ * the correct TWI bus address for the slave device when reading data from it.
+ */
+ #define TWI_ADDRESS_READ 0x00
+
+ /** TWI slave device address mask for a write session. Mask with a slave device base address to obtain
+ * the correct TWI bus address for the slave device when writing data to it.
+ */
+ #define TWI_ADDRESS_WRITE 0x01
+
/* Inline Functions: */
/** Initialises the TWI hardware into master mode, ready for data transmission and reception. This must be
* before any other TWI operations.