IO-based I2C functions with PCF8574 to proof my HW is correctly wired. Working on my LPC4088

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 }