Export for Dan
ETC.cpp@0:3887e1d343e5, 2015-09-04 (annotated)
- Committer:
- atravieso
- Date:
- Fri Sep 04 16:49:29 2015 +0000
- Revision:
- 0:3887e1d343e5
- Child:
- 1:933375506717
Successfully counts up in seconds. Will display the seconds when the button on the 1768 is pressed.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
atravieso | 0:3887e1d343e5 | 1 | #include "mbed.h" |
atravieso | 0:3887e1d343e5 | 2 | #include "I2C.h" |
atravieso | 0:3887e1d343e5 | 3 | |
atravieso | 0:3887e1d343e5 | 4 | //From I2C Handbook |
atravieso | 0:3887e1d343e5 | 5 | // Read from the I2C pins on LPC1768 |
atravieso | 0:3887e1d343e5 | 6 | /* All drivers on the I2C bus are required to be open collector, |
atravieso | 0:3887e1d343e5 | 7 | and so it is necessary for pull up resistors to be used on the two signals. |
atravieso | 0:3887e1d343e5 | 8 | A typical value for the pullup resistors is around 2.2k ohms |
atravieso | 0:3887e1d343e5 | 9 | conected between the pin and 3v3.*/ |
atravieso | 0:3887e1d343e5 | 10 | |
atravieso | 0:3887e1d343e5 | 11 | |
atravieso | 0:3887e1d343e5 | 12 | //#define DS1682_ADDR 0xD6 |
atravieso | 0:3887e1d343e5 | 13 | |
atravieso | 0:3887e1d343e5 | 14 | I2C i2c(p28, p27); |
atravieso | 0:3887e1d343e5 | 15 | |
atravieso | 0:3887e1d343e5 | 16 | |
atravieso | 0:3887e1d343e5 | 17 | |
atravieso | 0:3887e1d343e5 | 18 | |
atravieso | 0:3887e1d343e5 | 19 | int main() { |
atravieso | 0:3887e1d343e5 | 20 | |
atravieso | 0:3887e1d343e5 | 21 | long int tmp; |
atravieso | 0:3887e1d343e5 | 22 | |
atravieso | 0:3887e1d343e5 | 23 | i2c.start(); |
atravieso | 0:3887e1d343e5 | 24 | i2c.write(0xD6); |
atravieso | 0:3887e1d343e5 | 25 | i2c.write(5); |
atravieso | 0:3887e1d343e5 | 26 | i2c.start(); |
atravieso | 0:3887e1d343e5 | 27 | i2c.write(0xD6 | 1); |
atravieso | 0:3887e1d343e5 | 28 | unsigned char ttal = i2c.read(5); |
atravieso | 0:3887e1d343e5 | 29 | unsigned char ttalm = i2c.read(6); |
atravieso | 0:3887e1d343e5 | 30 | |
atravieso | 0:3887e1d343e5 | 31 | unsigned char ttahm = i2c.read(7); |
atravieso | 0:3887e1d343e5 | 32 | |
atravieso | 0:3887e1d343e5 | 33 | unsigned char ttalh = i2c.read(8); |
atravieso | 0:3887e1d343e5 | 34 | |
atravieso | 0:3887e1d343e5 | 35 | i2c.stop(); |
atravieso | 0:3887e1d343e5 | 36 | |
atravieso | 0:3887e1d343e5 | 37 | tmp = ((long int) ttalh << 24) + ((long int) ttahm << 16) + ((long int) |
atravieso | 0:3887e1d343e5 | 38 | ttalm << 8) + (long int) ttal; |
atravieso | 0:3887e1d343e5 | 39 | tmp >>= 2; |
atravieso | 0:3887e1d343e5 | 40 | printf("\r\nEvent Time: %d sec ", tmp); |
atravieso | 0:3887e1d343e5 | 41 | i2c.stop(); |
atravieso | 0:3887e1d343e5 | 42 | |
atravieso | 0:3887e1d343e5 | 43 | // |
atravieso | 0:3887e1d343e5 | 44 | i2c.start(); |
atravieso | 0:3887e1d343e5 | 45 | i2c.write(0xD6); |
atravieso | 0:3887e1d343e5 | 46 | i2c.write(9); |
atravieso | 0:3887e1d343e5 | 47 | i2c.start(); |
atravieso | 0:3887e1d343e5 | 48 | i2c.write(0xD6 | 1); |
atravieso | 0:3887e1d343e5 | 49 | unsigned char evntl = i2c.read(9); |
atravieso | 0:3887e1d343e5 | 50 | unsigned char evnth = i2c.read(0xa); |
atravieso | 0:3887e1d343e5 | 51 | printf("\r\nEvent Count: %d", ((int) evnth << 8) + evntl); |
atravieso | 0:3887e1d343e5 | 52 | i2c.stop(); |
atravieso | 0:3887e1d343e5 | 53 | |
atravieso | 0:3887e1d343e5 | 54 | } |
atravieso | 0:3887e1d343e5 | 55 |