Ken Parish
/
XYZ_PROX_01
figuring this out...
Diff: main.cpp
- Revision:
- 0:498ee64f952a
- Child:
- 2:ada8ecd122e4
diff -r 000000000000 -r 498ee64f952a main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 28 13:48:19 2014 +0000 @@ -0,0 +1,48 @@ +#include "mbed.h" +#include "VCNL40x0.h" + +#define MUX 0x60 // 11100000 +#define BAUD 115200 + +//const char chan0 = 0001; +//const char chan1 = 0010; +//const char chan2 = 0100; +//const char chan3 = 1000; +//const char all = 1111; + +// unsigned char chan[] = {0001,0010,0100,1000,1111}; +unsigned int sensors[4]; + +I2C i2c(p28, p27); +VCNL40x0 VCNL40x0_Device (p28, p27, VCNL40x0_ADDRESS); // Define SDA, SCL pin and I2C address +DigitalOut mled0(LED1); // LED #1 +Serial pc(USBTX, USBRX); // Tx, Rx USB transmission + + +int main() { + + unsigned int sensors[4]; + char chan[] = {0001,0010,0100,1000,1111}; + pc.baud(BAUD); // set USB speed (virtual COM port) + + for (int i = 0; i < 4; i++){ + + i2c.write(MUX,chan0, 2); + VCNL40x0_Device.SetCurrent (20); // Set current to 200mA + } + + while (1) { + for (int i = 0; i < 4; i++){ + + i2c.write(MUX,chan[i]); + + mled0 = 1; // LED on + VCNL40x0_Device.ReadProxiOnDemand (&sensors[i]); // read prox value on demand + mled0 = 0; // LED off + } + for (int i = 0; i < 4; i++){ + pc.printf("\r %i ", sensors[i]); + } + pc.printf("\r \n "); + } +}