A program to read and calculate the efficiency of the regulator TPS61170 in a boost configuration for a battery operation

Dependencies:   RTC mbed

Committer:
Ugly_Kid
Date:
Fri Nov 01 19:21:03 2013 +0000
Revision:
0:603b94fe9487
A program to read and calculate the efficiency of the regulator TPS61170 in a boost configuration for a battery operation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Ugly_Kid 0:603b94fe9487 1 #include "mbed.h"
Ugly_Kid 0:603b94fe9487 2 #include "RTC.h"
Ugly_Kid 0:603b94fe9487 3
Ugly_Kid 0:603b94fe9487 4 Ticker reading_i2c;
Ugly_Kid 0:603b94fe9487 5
Ugly_Kid 0:603b94fe9487 6 DigitalOut myled1(LED1);
Ugly_Kid 0:603b94fe9487 7
Ugly_Kid 0:603b94fe9487 8 DigitalOut myled2(LED2);
Ugly_Kid 0:603b94fe9487 9
Ugly_Kid 0:603b94fe9487 10 DigitalOut myled3(LED3);
Ugly_Kid 0:603b94fe9487 11
Ugly_Kid 0:603b94fe9487 12 DigitalOut myled4(LED4);
Ugly_Kid 0:603b94fe9487 13
Ugly_Kid 0:603b94fe9487 14
Ugly_Kid 0:603b94fe9487 15 I2C i2c(p9, p10);
Ugly_Kid 0:603b94fe9487 16 I2C i2c1(p28, p27);
Ugly_Kid 0:603b94fe9487 17
Ugly_Kid 0:603b94fe9487 18 const int addr = 0x90;
Ugly_Kid 0:603b94fe9487 19 Serial pc(USBTX, USBRX);
Ugly_Kid 0:603b94fe9487 20 int x;
Ugly_Kid 0:603b94fe9487 21
Ugly_Kid 0:603b94fe9487 22 void read_i2c ()
Ugly_Kid 0:603b94fe9487 23 {
Ugly_Kid 0:603b94fe9487 24 x = 0;
Ugly_Kid 0:603b94fe9487 25 }
Ugly_Kid 0:603b94fe9487 26
Ugly_Kid 0:603b94fe9487 27
Ugly_Kid 0:603b94fe9487 28 void ledFunction( void )
Ugly_Kid 0:603b94fe9487 29 {
Ugly_Kid 0:603b94fe9487 30 if (myled3 == 0)
Ugly_Kid 0:603b94fe9487 31 myled3 = 1;
Ugly_Kid 0:603b94fe9487 32 else myled3 = 0;
Ugly_Kid 0:603b94fe9487 33 //RTC::detach(RTC::Second);
Ugly_Kid 0:603b94fe9487 34 time_t seconds = time(NULL);
Ugly_Kid 0:603b94fe9487 35 printf("\n%s\n", ctime(&seconds));
Ugly_Kid 0:603b94fe9487 36 }
Ugly_Kid 0:603b94fe9487 37
Ugly_Kid 0:603b94fe9487 38 int main() {
Ugly_Kid 0:603b94fe9487 39 reading_i2c.attach(&read_i2c, 0.1);
Ugly_Kid 0:603b94fe9487 40
Ugly_Kid 0:603b94fe9487 41 set_time(1256729737);
Ugly_Kid 0:603b94fe9487 42 tm t = RTC::getDefaultTM();
Ugly_Kid 0:603b94fe9487 43 RTC::attach(&ledFunction, RTC::Second);
Ugly_Kid 0:603b94fe9487 44
Ugly_Kid 0:603b94fe9487 45 int iI2Cfreq = 100000; // bus frequency in Hz
Ugly_Kid 0:603b94fe9487 46 i2c.frequency (iI2Cfreq); //set I2C frequency
Ugly_Kid 0:603b94fe9487 47 i2c1.frequency (iI2Cfreq); //set I2C frequency
Ugly_Kid 0:603b94fe9487 48 pc.baud(115200);
Ugly_Kid 0:603b94fe9487 49
Ugly_Kid 0:603b94fe9487 50 int i,j;
Ugly_Kid 0:603b94fe9487 51 float z;
Ugly_Kid 0:603b94fe9487 52 char cRegister[1];
Ugly_Kid 0:603b94fe9487 53 char cData[2];
Ugly_Kid 0:603b94fe9487 54 char cData1[2];
Ugly_Kid 0:603b94fe9487 55 cRegister[0] = 0x0E;
Ugly_Kid 0:603b94fe9487 56 cData[0] = 0x00;
Ugly_Kid 0:603b94fe9487 57 cData[1] = 0x00;
Ugly_Kid 0:603b94fe9487 58 cData1[0] = 0x00;
Ugly_Kid 0:603b94fe9487 59 cData1[1] = 0x00;
Ugly_Kid 0:603b94fe9487 60 while (1) {
Ugly_Kid 0:603b94fe9487 61 if (x == 0)
Ugly_Kid 0:603b94fe9487 62 {
Ugly_Kid 0:603b94fe9487 63 i2c.write(addr, cRegister, 1);
Ugly_Kid 0:603b94fe9487 64 i2c.read(addr, cData, 2);
Ugly_Kid 0:603b94fe9487 65 i2c1.write(addr, cRegister, 1);
Ugly_Kid 0:603b94fe9487 66 i2c1.read(addr, cData1, 2);
Ugly_Kid 0:603b94fe9487 67 i = 256*(int)cData1[0]+(int)cData1[1];
Ugly_Kid 0:603b94fe9487 68 j = 256*(int)cData[0] + (int)cData[1];
Ugly_Kid 0:603b94fe9487 69 z = j;
Ugly_Kid 0:603b94fe9487 70 z = 100 - ((j - i)/z * 100);
Ugly_Kid 0:603b94fe9487 71 printf("Regulador %X %X \t ACQUAPLUS %X %X \t Eficiencia %f%%\n", cData[0], cData[1], cData1[0], cData1[1], z);
Ugly_Kid 0:603b94fe9487 72 x = 1;
Ugly_Kid 0:603b94fe9487 73 }
Ugly_Kid 0:603b94fe9487 74 }
Ugly_Kid 0:603b94fe9487 75 }