|
| | PortI2C (uint8_t num, uint8_t rate=KHZMAX) |
| | Creates an instance of class PortI2C. More...
|
| |
| uint8_t | start (uint8_t addr) const |
| | Initalize I2C communication on a JeeNode port. More...
|
| |
|
void | stop () const |
| | Terminate transmission on an I2C connection.
|
| |
| uint8_t | write (uint8_t data) const |
| | Send one byte of data to the currently address I2C device. More...
|
| |
| uint8_t | read (uint8_t last) const |
| | Read a byte using I2C protocol on a JeeNode port. More...
|
| |
|
| Port (uint8_t num) |
| | Contructor for a Port.
|
| |
| void | mode (uint8_t value) const |
| | Set the pin mode of a Port's D pin. More...
|
| |
| uint8_t | digiRead () const |
| | Reads the value of a Port's D pin. More...
|
| |
| void | digiWrite (uint8_t value) const |
| | Write High or Low to a Port's D pin. More...
|
| |
|
void | anaWrite (uint8_t val) const |
| | Writes a PWM value to a Port's D pin.
|
| |
| uint32_t | pulse (uint8_t state, uint32_t timeout=1000000L) const |
| | Applies the Arduino pulseIn() function on a Port's D pin. More...
|
| |
| void | mode2 (uint8_t value) const |
| | Set the pin mode of a Port's A pin. More...
|
| |
| uint16_t | anaRead () const |
| | Reads an analog value from a Port's A pin. More...
|
| |
| uint8_t | digiRead2 () const |
| | Reads the value of a Port's A pin. More...
|
| |
| void | digiWrite2 (uint8_t value) const |
| | Write High or Low to a Port's A pin. More...
|
| |
| uint32_t | pulse2 (uint8_t state, uint32_t timeout=1000000L) const |
| | Applies the Arduino pulseIn() function on a Port's A pin. More...
|
| |
| void | shift (uint8_t bitOrder, uint8_t value) const |
| | Does Arduino shiftOut() with data on D and clock on A pin of the Port. More...
|
| |
| uint16_t | shiftRead (uint8_t bitOrder, uint8_t count=8) const |
| | Shift a number of bites in to read them. More...
|
| |
| void | shiftWrite (uint8_t bitOrder, uint16_t value, uint8_t count=8) const |
| | The shiftWrite() call is similar but more general than the shift() call in that it allows an adjustable number of bits to be sent, not just 8. More...
|
| |
Can be used to drive a software (bit-banged) I2C bus via a Port interface.
- Todo:
- Speed up the I2C bit I/O, it's far too slow right now.
The PortI2C class is a special version of class Port implementing the I2C / Two-Wire Interface (TWI) protocol. Allows using any port as I2C bus master. When used for I2C, DIO is used as SDA and AIO as SCL. Unlike the Wire library for the Arduino, which is a more advanced solution for the hardware I2C lines of an ATmega, the PortI2C class is implemented entirely in software using "bit-banging". Another difference is that PortI2C does not use interrupts and will keep the microcontroller occupied while it is performing I/O transfers.
- See Also
- DeviceI2C