Test

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 
00003 DigitalOut myled(LED1);
00004 AnalogIn FSR1(p20);
00005 AnalogIn FSR2(p19);
00006 
00007 
00008 int8_t AD5245_write_result;
00009 
00010 float fsr1_value;
00011 float fsr2_value;
00012 int truncated_fsr1_value;
00013 
00014 int8_t AD5245_addr = 0x2C;
00015 //TODO: LTC4151 address will be change.
00016 int8_t LTC4151_addr = 0xCE;
00017 
00018 char data[2];
00019 
00020 Serial pc(USBTX, USBRX);
00021 
00022 I2C i2c(p9,p10);
00023 
00024 int msb = 0;
00025 int main()
00026 {
00027     pc.baud(115200);
00028 
00029     while(1) {
00030         data[0] = 0x04;
00031         fsr1_value=FSR1.read();
00032         truncated_fsr1_value=fsr1_value*255;
00033         pc.printf("Truncated Value: %d\n",truncated_fsr1_value);
00034         i2c.start();
00035         i2c.write(AD5245_addr);
00036         i2c.write(truncated_fsr1_value);
00037         i2c.stop();
00038 
00039         wait(0.01);
00040 #if 1
00041         i2c.start();                // I2C start
00042         i2c.write(0xCE);            // I2C slave address - 0xCE
00043         i2c.write(0x04);            // I2C slave register address - C_register 02h
00044         i2c.start();                // I2C start
00045         i2c.write(0xCF);            // I2C slave address - 0xCE
00046         msb=i2c.read(0);        // I2C read with NAK (not-acknowledge)
00047         i2c.stop();
00048 
00049         pc.printf("Msb: %d\n",msb);
00050 #endif
00051 #if 0
00052         data[0] = 0x02;  //register we want to read
00053         int ret = i2c.write(LTC4151_addr, data, 1, true);  //Write one byte, dont transmit stop condition, check if we get ACK
00054 
00055         if (ret == 0)
00056             printf("Succesfull write\n\r");
00057         else
00058             printf("Returned: %X\n\r", ret);
00059 
00060         i2c.read(LTC4151_addr, data, 2);
00061         pc.printf("Byte 1: 0x%x Byte 2: 0x%x\n",data[0],data[1]);
00062         pc.printf("Data = %d\n\r", (data[0]<<8) + data[1]);
00063 #endif
00064 
00065         wait(0.5);
00066         if(myled) {
00067             myled = 0;
00068         } else {
00069             myled = 1;
00070         }
00071     }
00072 }