| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
This reverts commit da01c80f24dc9c43ff951ea9fd283abb4628ceb7.
Reverting pull request #54, which breaks examples/i2c-mcp4725-dac.cpp.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
|
|
|
|
|
|
| |
This reverts commit 39cd07a640ee87b7937738d36f17019b2865bfae.
Reverting pull request #54, which breaks examples/i2c-mcp4725-dac.cpp.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
|
|
|
|
|
|
|
|
| |
Added fix for corner case where badly behaving master doesn't NACK and we don't get the callbacks fires.
Removed my own name from several places and added attribution to the correct place.
Updated include comments to reference the fact it now supports I2C slave
Signed-off-by:- Barry Carter <barry.carter@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Callbacks can be called after each read/write cycle or per byte
- Each I2C module can have different callbacks
- General call support also working
- Supports master and slave at same time. Also works with multimaster
Usage:
i2c_msg msg;
char buffer[255];
main()
{
i2c_slave_enable(I2C1, I2C_FAST_MODE | I2C_SLAVE_DUAL_ADDRESS | I2C_SLAVE_GENERAL_CALL | I2C_SLAVE_USE_RX_BUFFER); // init slave mode. Enables master too
i2c_slave_attach_recv_handler(I2C1, pmsg, funcrx); // attach receive handler
i2c_slave_attach_transmit_handler(I2C1, pmsg, functx); // attach transmit handler
i2c_slave_set_own_address(I2C1, 0x10); // set addresss 1
i2c_slave_set_own_address2(I2C1, 0x20); // set addresss 2
}
void funcrx(i2c_msg *msg)
{
printf("length is %d.\n", msg->length);
char return_data = msg0>data[0];
}
void functx(i2c_msg *dev)
{
msg->data[0] = 0x01;
msg->data[1] = 0x02;
msg->data[2] = 0x03;
msg->data[3] = 0x04;
msg->data[4] = 0x05;
msg->length = 5;
}
All code derived from datasheets and libmaple.
Signed-off-by:- Barry Carter <barry.carter@gmail.com>
|
|
|
|
|
|
|
|
| |
- Shut Doxygen up in various places
- Fix some genuine docs bugs
- Ignore sources we're not responsible for
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This won't work on F2, which at times has SDA and SCL on different
ports (e.g. I2C3 SDA on PC9, SCL on PA8). Add .sda_port and .scl_port
replacements, which are used when the now-deprecated .gpio_port is
null. Use them correctly everywhere, with some new i2c_private.h
helper functionality.
Sigh. The F1 I2C code tries too hard to guess what you wanted; it's
not porting well at all.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|
|
This is necessary to add series-specific infrastructure to clean up
some F1-isms in <libmaple/i2c.h>'s inline functions.
Signed-off-by: Marti Bolivar <mbolivar@leaflabs.com>
|