Bertl2014 Bulme

Dependencies:   mbed

Committer:
hemmer_matthias
Date:
Sat May 06 20:12:01 2017 +0000
Revision:
0:84a4a0aa3ea6
Bertl2014

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hemmer_matthias 0:84a4a0aa3ea6 1 #include "myi2c.h"
hemmer_matthias 0:84a4a0aa3ea6 2
hemmer_matthias 0:84a4a0aa3ea6 3 PCF8563::PCF8563(PinName sda, PinName scl) : i2c (sda, scl)
hemmer_matthias 0:84a4a0aa3ea6 4 {
hemmer_matthias 0:84a4a0aa3ea6 5 i2c.frequency(PCF8563_FREQ); //set the frequency
hemmer_matthias 0:84a4a0aa3ea6 6 }
hemmer_matthias 0:84a4a0aa3ea6 7 /*
hemmer_matthias 0:84a4a0aa3ea6 8 * read function from the TRC
hemmer_matthias 0:84a4a0aa3ea6 9 * read a value and return it
hemmer_matthias 0:84a4a0aa3ea6 10 */
hemmer_matthias 0:84a4a0aa3ea6 11 uint8_t PCF8563::read(int i2c_r, int address)
hemmer_matthias 0:84a4a0aa3ea6 12 {
hemmer_matthias 0:84a4a0aa3ea6 13 uint8_t value; //temp 8bit
hemmer_matthias 0:84a4a0aa3ea6 14 i2c.start(); //start
hemmer_matthias 0:84a4a0aa3ea6 15 i2c.write(i2c_r); //write address
hemmer_matthias 0:84a4a0aa3ea6 16 i2c.write(address);
hemmer_matthias 0:84a4a0aa3ea6 17 i2c.start(); //restart
hemmer_matthias 0:84a4a0aa3ea6 18 i2c.write(address); //read address
hemmer_matthias 0:84a4a0aa3ea6 19 value = i2c.read(0);
hemmer_matthias 0:84a4a0aa3ea6 20 i2c.stop();
hemmer_matthias 0:84a4a0aa3ea6 21
hemmer_matthias 0:84a4a0aa3ea6 22 return value; //returns var value of the method
hemmer_matthias 0:84a4a0aa3ea6 23 }
hemmer_matthias 0:84a4a0aa3ea6 24 uint8_t PCF8563::read(int i2c_w, int i2c_r, int address)
hemmer_matthias 0:84a4a0aa3ea6 25 {
hemmer_matthias 0:84a4a0aa3ea6 26 uint8_t value; //temp 8bit
hemmer_matthias 0:84a4a0aa3ea6 27 i2c.start(); //start
hemmer_matthias 0:84a4a0aa3ea6 28 i2c.write(i2c_w); //write address
hemmer_matthias 0:84a4a0aa3ea6 29 i2c.write(address);
hemmer_matthias 0:84a4a0aa3ea6 30 i2c.start(); //restart
hemmer_matthias 0:84a4a0aa3ea6 31 i2c.write(i2c_r); //read address
hemmer_matthias 0:84a4a0aa3ea6 32 value = i2c.read(0);
hemmer_matthias 0:84a4a0aa3ea6 33 i2c.stop();
hemmer_matthias 0:84a4a0aa3ea6 34 return value;
hemmer_matthias 0:84a4a0aa3ea6 35 }
hemmer_matthias 0:84a4a0aa3ea6 36 /* firtly you write the address from the rtc
hemmer_matthias 0:84a4a0aa3ea6 37 * secondly the register address
hemmer_matthias 0:84a4a0aa3ea6 38 * last but not leat your value
hemmer_matthias 0:84a4a0aa3ea6 39 */
hemmer_matthias 0:84a4a0aa3ea6 40 void PCF8563::write(int i2c_w, int address, int value)
hemmer_matthias 0:84a4a0aa3ea6 41 {
hemmer_matthias 0:84a4a0aa3ea6 42 i2c.start(); //start
hemmer_matthias 0:84a4a0aa3ea6 43 i2c.write(i2c_w); //i2c write address
hemmer_matthias 0:84a4a0aa3ea6 44 i2c.write(address);
hemmer_matthias 0:84a4a0aa3ea6 45 i2c.write(value);
hemmer_matthias 0:84a4a0aa3ea6 46 i2c.stop(); //stop
hemmer_matthias 0:84a4a0aa3ea6 47 }
hemmer_matthias 0:84a4a0aa3ea6 48 /*
hemmer_matthias 0:84a4a0aa3ea6 49 * Binary Coded Decimal converter into decimal
hemmer_matthias 0:84a4a0aa3ea6 50 */
hemmer_matthias 0:84a4a0aa3ea6 51 uint8_t PCF8563::bcdToDec(uint8_t val)
hemmer_matthias 0:84a4a0aa3ea6 52 {
hemmer_matthias 0:84a4a0aa3ea6 53 return (10*((val>>4)& 0x0F)+(val & 0x0F)); //convert from bcd to dec
hemmer_matthias 0:84a4a0aa3ea6 54 }