karelv
/
i2c_io_lpc4088
IO-based I2C functions with PCF8574 to proof my HW is correctly wired. Working on my LPC4088
main.cpp@0:b0247e85bf0e, 2014-12-07 (annotated)
- Committer:
- karelv
- Date:
- Sun Dec 07 13:56:12 2014 +0000
- Revision:
- 0:b0247e85bf0e
IO-based I2C function, to show my HW is correctly wired
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
karelv | 0:b0247e85bf0e | 1 | #include "mbed.h" |
karelv | 0:b0247e85bf0e | 2 | #include "my_i2c.h" |
karelv | 0:b0247e85bf0e | 3 | |
karelv | 0:b0247e85bf0e | 4 | DigitalOut myled(LED1); |
karelv | 0:b0247e85bf0e | 5 | |
karelv | 0:b0247e85bf0e | 6 | // Connections made: |
karelv | 0:b0247e85bf0e | 7 | // SDA to pin9 of LPC4088 QSB |
karelv | 0:b0247e85bf0e | 8 | // SCL to pin10 of LPC4088 QSB |
karelv | 0:b0247e85bf0e | 9 | // on I2C bus is PCF8574 connected at sub-address 0 (0x40). |
karelv | 0:b0247e85bf0e | 10 | // all supplied at 3.3V |
karelv | 0:b0247e85bf0e | 11 | // no external pullup (5K internal pullup used by my_i2c functions) |
karelv | 0:b0247e85bf0e | 12 | // |
karelv | 0:b0247e85bf0e | 13 | // note in the my_i2c functions a delay of 1us is added after each transition of the pin. |
karelv | 0:b0247e85bf0e | 14 | // so this means an absolute maximum frequency of 500kHz. |
karelv | 0:b0247e85bf0e | 15 | |
karelv | 0:b0247e85bf0e | 16 | int main() { |
karelv | 0:b0247e85bf0e | 17 | |
karelv | 0:b0247e85bf0e | 18 | while(1) { |
karelv | 0:b0247e85bf0e | 19 | myled = 1; |
karelv | 0:b0247e85bf0e | 20 | my_i2cStart(0x40); |
karelv | 0:b0247e85bf0e | 21 | my_i2cWrite (0x55); |
karelv | 0:b0247e85bf0e | 22 | my_i2cStop(); |
karelv | 0:b0247e85bf0e | 23 | wait(0.5); |
karelv | 0:b0247e85bf0e | 24 | myled = 0; |
karelv | 0:b0247e85bf0e | 25 | my_i2cStart(0x40); |
karelv | 0:b0247e85bf0e | 26 | my_i2cWrite (0xAA); |
karelv | 0:b0247e85bf0e | 27 | my_i2cStop(); |
karelv | 0:b0247e85bf0e | 28 | wait(0.5); |
karelv | 0:b0247e85bf0e | 29 | } |
karelv | 0:b0247e85bf0e | 30 | } |