A program to read and calculate the efficiency of the regulator TPS61170 in a boost configuration for a battery operation
main.cpp@0:603b94fe9487, 2013-11-01 (annotated)
- 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?
User | Revision | Line number | New 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 | } |