Program allows for a rectangle displayed on SSD1306-based OLED display to be moved by x- and y-axis uisng two user potentiometers.

Dependencies:   mbed Adafruit_GFX

Committer:
joeata2wh
Date:
Sun Mar 20 23:51:00 2016 +0000
Revision:
2:e90c47d4f358
Parent:
1:2363995f603f
Child:
3:8def8fb70765
updated comment

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joeata2wh 0:befb557584fb 1 /* Scan I2C bus on specified pins and prints out
joeata2wh 2:e90c47d4f358 2 * the all address where a active responder
joeata2wh 0:befb557584fb 3 * is found.
joeata2wh 0:befb557584fb 4 *
joeata2wh 0:befb557584fb 5 * By Joe Elsworth CTO of A2WH
joeata2wh 0:befb557584fb 6 * Free use for al but no warranty, no promises.
joeata2wh 2:e90c47d4f358 7 * Don't forget 3K pullup sda,scl
joeata2wh 2:e90c47d4f358 8 *
joeata2wh 2:e90c47d4f358 9 * I tested this by soldering in a I2C chip known to respond at
joeata2wh 2:e90c47d4f358 10 * address dec=120 hex=70 and the utility got the ack as expected.
joeata2wh 2:e90c47d4f358 11 * when the chip was de-soldered it was no longer detected.
joeata2wh 2:e90c47d4f358 12 */
joeata2wh 0:befb557584fb 13
joeata2wh 0:befb557584fb 14 #include "mbed.h"
joeata2wh 0:befb557584fb 15
joeata2wh 0:befb557584fb 16
joeata2wh 0:befb557584fb 17 Serial pc(USBTX, USBRX);
joeata2wh 0:befb557584fb 18
joeata2wh 1:2363995f603f 19 #define D_SDA PB_7
joeata2wh 0:befb557584fb 20 #define D_SCL PB_6
joeata2wh 0:befb557584fb 21 // sda=PB7, scl=PB_6 Pins specific to Nucleo-F303K8
joeata2wh 0:befb557584fb 22 // must change pins to match your board.
joeata2wh 0:befb557584fb 23
joeata2wh 0:befb557584fb 24 I2C i2c(D_SDA, D_SCL);
joeata2wh 0:befb557584fb 25
joeata2wh 0:befb557584fb 26 DigitalOut myled(LED1);
joeata2wh 0:befb557584fb 27
joeata2wh 0:befb557584fb 28 void scanI2C() {
joeata2wh 0:befb557584fb 29 int address;
joeata2wh 0:befb557584fb 30 int ack;
joeata2wh 0:befb557584fb 31 for(address=1;address<127;address++) {
joeata2wh 0:befb557584fb 32 ack = i2c.write(address, "11", 1);
joeata2wh 0:befb557584fb 33 if (ack == 0) {
joeata2wh 0:befb557584fb 34 pc.printf("\tFound at %3d -- %3x\r\n", address,address);
joeata2wh 0:befb557584fb 35 }
joeata2wh 0:befb557584fb 36 wait(0.05);
joeata2wh 0:befb557584fb 37 }
joeata2wh 0:befb557584fb 38 }
joeata2wh 0:befb557584fb 39
joeata2wh 0:befb557584fb 40 int main() {
joeata2wh 0:befb557584fb 41 pc.baud(9600);
joeata2wh 0:befb557584fb 42 pc.printf("I2C scanner \r\n");
joeata2wh 0:befb557584fb 43 scanI2C();
joeata2wh 0:befb557584fb 44 pc.printf("Finished Scan\r\n");
joeata2wh 0:befb557584fb 45
joeata2wh 0:befb557584fb 46 ack = i2c.write(71, "11", 1);
joeata2wh 0:befb557584fb 47
joeata2wh 0:befb557584fb 48 while(1) {
joeata2wh 0:befb557584fb 49 wait(5.0);
joeata2wh 0:befb557584fb 50 myled = !myled;
joeata2wh 0:befb557584fb 51 }
joeata2wh 0:befb557584fb 52 }
joeata2wh 0:befb557584fb 53