Wilson Nunes
/
GT-ACQUAPLUS_Consumo
A program to read the DS2745 by means of the I2C bus.
main.cpp@0:f453c4d28d21, 2013-10-31 (annotated)
- Committer:
- Ugly_Kid
- Date:
- Thu Oct 31 13:36:32 2013 +0000
- Revision:
- 0:f453c4d28d21
Leitura do DS2745 GTACQUAPLUS
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Ugly_Kid | 0:f453c4d28d21 | 1 | #include "mbed.h" |
Ugly_Kid | 0:f453c4d28d21 | 2 | #include "RTC.h" |
Ugly_Kid | 0:f453c4d28d21 | 3 | |
Ugly_Kid | 0:f453c4d28d21 | 4 | Ticker reading_i2c; |
Ugly_Kid | 0:f453c4d28d21 | 5 | |
Ugly_Kid | 0:f453c4d28d21 | 6 | DigitalOut myled1(LED1); |
Ugly_Kid | 0:f453c4d28d21 | 7 | |
Ugly_Kid | 0:f453c4d28d21 | 8 | DigitalOut myled2(LED2); |
Ugly_Kid | 0:f453c4d28d21 | 9 | |
Ugly_Kid | 0:f453c4d28d21 | 10 | DigitalOut myled3(LED3); |
Ugly_Kid | 0:f453c4d28d21 | 11 | |
Ugly_Kid | 0:f453c4d28d21 | 12 | DigitalOut myled4(LED4); |
Ugly_Kid | 0:f453c4d28d21 | 13 | |
Ugly_Kid | 0:f453c4d28d21 | 14 | |
Ugly_Kid | 0:f453c4d28d21 | 15 | I2C i2c(p9, p10); |
Ugly_Kid | 0:f453c4d28d21 | 16 | |
Ugly_Kid | 0:f453c4d28d21 | 17 | const int addr = 0x90; |
Ugly_Kid | 0:f453c4d28d21 | 18 | Serial pc(USBTX, USBRX); |
Ugly_Kid | 0:f453c4d28d21 | 19 | int x; |
Ugly_Kid | 0:f453c4d28d21 | 20 | |
Ugly_Kid | 0:f453c4d28d21 | 21 | void read_i2c () |
Ugly_Kid | 0:f453c4d28d21 | 22 | { |
Ugly_Kid | 0:f453c4d28d21 | 23 | x = 0; |
Ugly_Kid | 0:f453c4d28d21 | 24 | } |
Ugly_Kid | 0:f453c4d28d21 | 25 | |
Ugly_Kid | 0:f453c4d28d21 | 26 | |
Ugly_Kid | 0:f453c4d28d21 | 27 | void ledFunction( void ) |
Ugly_Kid | 0:f453c4d28d21 | 28 | { |
Ugly_Kid | 0:f453c4d28d21 | 29 | if (myled3 == 0) |
Ugly_Kid | 0:f453c4d28d21 | 30 | myled3 = 1; |
Ugly_Kid | 0:f453c4d28d21 | 31 | else myled3 = 0; |
Ugly_Kid | 0:f453c4d28d21 | 32 | //RTC::detach(RTC::Second); |
Ugly_Kid | 0:f453c4d28d21 | 33 | time_t seconds = time(NULL); |
Ugly_Kid | 0:f453c4d28d21 | 34 | printf("\n%s\n", ctime(&seconds)); |
Ugly_Kid | 0:f453c4d28d21 | 35 | } |
Ugly_Kid | 0:f453c4d28d21 | 36 | |
Ugly_Kid | 0:f453c4d28d21 | 37 | int main() { |
Ugly_Kid | 0:f453c4d28d21 | 38 | reading_i2c.attach(&read_i2c, 0.1); |
Ugly_Kid | 0:f453c4d28d21 | 39 | |
Ugly_Kid | 0:f453c4d28d21 | 40 | set_time(1256729737); |
Ugly_Kid | 0:f453c4d28d21 | 41 | tm t = RTC::getDefaultTM(); |
Ugly_Kid | 0:f453c4d28d21 | 42 | RTC::attach(&ledFunction, RTC::Second); |
Ugly_Kid | 0:f453c4d28d21 | 43 | |
Ugly_Kid | 0:f453c4d28d21 | 44 | int iI2Cfreq = 100000; // bus frequency in Hz |
Ugly_Kid | 0:f453c4d28d21 | 45 | i2c.frequency (iI2Cfreq); //set I2C frequency |
Ugly_Kid | 0:f453c4d28d21 | 46 | //i2c1.frequency (iI2Cfreq); //set I2C frequency |
Ugly_Kid | 0:f453c4d28d21 | 47 | pc.baud(115200); |
Ugly_Kid | 0:f453c4d28d21 | 48 | |
Ugly_Kid | 0:f453c4d28d21 | 49 | // int i,j; |
Ugly_Kid | 0:f453c4d28d21 | 50 | int j; |
Ugly_Kid | 0:f453c4d28d21 | 51 | float z, k; |
Ugly_Kid | 0:f453c4d28d21 | 52 | char cRegister[1]; |
Ugly_Kid | 0:f453c4d28d21 | 53 | char cData[2]; |
Ugly_Kid | 0:f453c4d28d21 | 54 | // char cData1[2]; |
Ugly_Kid | 0:f453c4d28d21 | 55 | cRegister[0] = 0x0E; |
Ugly_Kid | 0:f453c4d28d21 | 56 | cData[0] = 0x00; |
Ugly_Kid | 0:f453c4d28d21 | 57 | cData[1] = 0x00; |
Ugly_Kid | 0:f453c4d28d21 | 58 | k = 0.0015625; |
Ugly_Kid | 0:f453c4d28d21 | 59 | // cData1[0] = 0x00; |
Ugly_Kid | 0:f453c4d28d21 | 60 | // cData1[1] = 0x00; |
Ugly_Kid | 0:f453c4d28d21 | 61 | while (1) { |
Ugly_Kid | 0:f453c4d28d21 | 62 | if (x == 0) |
Ugly_Kid | 0:f453c4d28d21 | 63 | { |
Ugly_Kid | 0:f453c4d28d21 | 64 | i2c.write(addr, cRegister, 1); |
Ugly_Kid | 0:f453c4d28d21 | 65 | i2c.read(addr, cData, 2); |
Ugly_Kid | 0:f453c4d28d21 | 66 | // i2c1.write(addr, cRegister, 1); |
Ugly_Kid | 0:f453c4d28d21 | 67 | // i2c1.read(addr, cData1, 2); |
Ugly_Kid | 0:f453c4d28d21 | 68 | // i = 256*(int)cData1[0]+(int)cData1[1]; |
Ugly_Kid | 0:f453c4d28d21 | 69 | j = 256*(int)cData[0] + (int)cData[1]; |
Ugly_Kid | 0:f453c4d28d21 | 70 | z = j; |
Ugly_Kid | 0:f453c4d28d21 | 71 | z = (z * k)/0.02; |
Ugly_Kid | 0:f453c4d28d21 | 72 | // z = 100 - ((j - i)/z * 100); |
Ugly_Kid | 0:f453c4d28d21 | 73 | // printf("Regulador %X %X \t ACQUAPLUS %X %X \t Eficiencia %f%%\n", cData[0], cData[1], cData1[0], cData1[1], z); |
Ugly_Kid | 0:f453c4d28d21 | 74 | printf("Corrente (mA) %.2f \n", z); |
Ugly_Kid | 0:f453c4d28d21 | 75 | x = 1; |
Ugly_Kid | 0:f453c4d28d21 | 76 | } |
Ugly_Kid | 0:f453c4d28d21 | 77 | } |
Ugly_Kid | 0:f453c4d28d21 | 78 | } |