RTC DS3234 library

Dependencies:   mbed

Fork of WDtester by green rosh

Committer:
duke970
Date:
Wed Dec 17 08:42:51 2014 +0000
Revision:
1:7c0fa2bb38df
Child:
2:c2e2b6238a69
This is first commit in mbed

Who changed what in which revision?

UserRevisionLine numberNew contents of line
duke970 1:7c0fa2bb38df 1 #include <mbed.h>
duke970 1:7c0fa2bb38df 2 #include "DS3234.h"
duke970 1:7c0fa2bb38df 3
duke970 1:7c0fa2bb38df 4 /*
duke970 1:7c0fa2bb38df 5 The below mentioned are the bits in Read mode.
duke970 1:7c0fa2bb38df 6 seconds 0x80
duke970 1:7c0fa2bb38df 7 minuntes 0x81
duke970 1:7c0fa2bb38df 8 hours 0x82
duke970 1:7c0fa2bb38df 9 day 0x83
duke970 1:7c0fa2bb38df 10 date 0x84
duke970 1:7c0fa2bb38df 11 month 0x85
duke970 1:7c0fa2bb38df 12 year 0x86
duke970 1:7c0fa2bb38df 13 */
duke970 1:7c0fa2bb38df 14 void DS3234_set(PinName pin, struct ts t)
duke970 1:7c0fa2bb38df 15 {
duke970 1:7c0fa2bb38df 16 SPI spi(PTD6, PTD7, PTD5);
duke970 1:7c0fa2bb38df 17
duke970 1:7c0fa2bb38df 18
duke970 1:7c0fa2bb38df 19 uint8_t i, century;
duke970 1:7c0fa2bb38df 20
duke970 1:7c0fa2bb38df 21 if (t.year > 2000) {
duke970 1:7c0fa2bb38df 22 century = 0x80;
duke970 1:7c0fa2bb38df 23 t.year_s = t.year - 2000;
duke970 1:7c0fa2bb38df 24 } else {
duke970 1:7c0fa2bb38df 25 century = 0;
duke970 1:7c0fa2bb38df 26 t.year_s = t.year - 1900;
duke970 1:7c0fa2bb38df 27 }
duke970 1:7c0fa2bb38df 28
duke970 1:7c0fa2bb38df 29 uint8_t TimeDate[7] = { t.sec, t.min, t.hour, t.wday, t.mday, t.mon, t.year_s };
duke970 1:7c0fa2bb38df 30 for (i = 0; i <= 6; i++) {
duke970 1:7c0fa2bb38df 31 DigitalOut cs(pin);
duke970 1:7c0fa2bb38df 32
duke970 1:7c0fa2bb38df 33 spi.write(i + 0x80);
duke970 1:7c0fa2bb38df 34 if (i == 5)
duke970 1:7c0fa2bb38df 35 spi.write(dectobcd(TimeDate[5]) + century);
duke970 1:7c0fa2bb38df 36 else
duke970 1:7c0fa2bb38df 37 spi.write(dectobcd(TimeDate[i]));
duke970 1:7c0fa2bb38df 38 cs.write(1);
duke970 1:7c0fa2bb38df 39 }
duke970 1:7c0fa2bb38df 40 }
duke970 1:7c0fa2bb38df 41
duke970 1:7c0fa2bb38df 42
duke970 1:7c0fa2bb38df 43 uint8_t dectobcd(const uint8_t val)
duke970 1:7c0fa2bb38df 44 {
duke970 1:7c0fa2bb38df 45 return ((val / 10 * 16) + (val % 10));
duke970 1:7c0fa2bb38df 46 }
duke970 1:7c0fa2bb38df 47
duke970 1:7c0fa2bb38df 48 uint8_t bcdtodec(const uint8_t val)
duke970 1:7c0fa2bb38df 49 {
duke970 1:7c0fa2bb38df 50 return ((val / 16 * 10) + (val % 16));
duke970 1:7c0fa2bb38df 51 }
duke970 1:7c0fa2bb38df 52