Export for Dan

Dependencies:   mbed

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?

UserRevisionLine numberNew 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