sato sei / Mbed 2 deprecated SD_AQM_RTC_Test

Dependencies:   SDFileSystem mbed

Committer:
satoseiz
Date:
Wed May 24 00:58:25 2017 +0000
Revision:
1:58c05f881281
Parent:
0:dd4a28744f4e
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
satoseiz 0:dd4a28744f4e 1 #include "mbed.h"
satoseiz 0:dd4a28744f4e 2 #include "RTC8564.h"
satoseiz 0:dd4a28744f4e 3
satoseiz 0:dd4a28744f4e 4 //lpc1768
satoseiz 0:dd4a28744f4e 5 void rtc_write(char address, char value)
satoseiz 0:dd4a28744f4e 6 {
satoseiz 0:dd4a28744f4e 7 i2c.start();
satoseiz 0:dd4a28744f4e 8 i2c.write(RTC8564NB_ADR);
satoseiz 0:dd4a28744f4e 9 i2c.write(address);
satoseiz 0:dd4a28744f4e 10 i2c.write(value);
satoseiz 0:dd4a28744f4e 11 i2c.stop();
satoseiz 0:dd4a28744f4e 12 }
satoseiz 0:dd4a28744f4e 13
satoseiz 0:dd4a28744f4e 14 char rtc_read(char address)
satoseiz 0:dd4a28744f4e 15 {
satoseiz 0:dd4a28744f4e 16 char value;
satoseiz 0:dd4a28744f4e 17 i2c.start();
satoseiz 0:dd4a28744f4e 18 i2c.write(RTC8564NB_ADR);
satoseiz 0:dd4a28744f4e 19 i2c.write(address);
satoseiz 0:dd4a28744f4e 20 i2c.start();
satoseiz 0:dd4a28744f4e 21 i2c.write(RTC8564NB_ADR | _READ);
satoseiz 0:dd4a28744f4e 22 value = i2c.read(0);
satoseiz 0:dd4a28744f4e 23 i2c.stop();
satoseiz 0:dd4a28744f4e 24
satoseiz 0:dd4a28744f4e 25 return value;
satoseiz 0:dd4a28744f4e 26 }
satoseiz 0:dd4a28744f4e 27
satoseiz 0:dd4a28744f4e 28 void time_just()
satoseiz 0:dd4a28744f4e 29 {
satoseiz 0:dd4a28744f4e 30 char _min, _hour;
satoseiz 0:dd4a28744f4e 31 _min = rtc_read(MINUTES);
satoseiz 0:dd4a28744f4e 32 if (_min >= 0x30) {
satoseiz 0:dd4a28744f4e 33 _hour = rtc_read(HOURS);
satoseiz 0:dd4a28744f4e 34 if (_hour == 0x23)
satoseiz 0:dd4a28744f4e 35 _hour = 0x00;
satoseiz 0:dd4a28744f4e 36 else if ((_hour & 0x0F) == 0x09)
satoseiz 0:dd4a28744f4e 37 _hour = (_hour & 0xF0) + 0x10;
satoseiz 0:dd4a28744f4e 38 else
satoseiz 0:dd4a28744f4e 39 _hour = _hour + 0x01;
satoseiz 0:dd4a28744f4e 40 rtc_write(HOURS, _hour);
satoseiz 0:dd4a28744f4e 41 }
satoseiz 0:dd4a28744f4e 42 rtc_write(MINUTES, 0x00);
satoseiz 0:dd4a28744f4e 43 rtc_write(SECONDS, 0x00);
satoseiz 0:dd4a28744f4e 44 }
satoseiz 0:dd4a28744f4e 45
satoseiz 0:dd4a28744f4e 46
satoseiz 0:dd4a28744f4e 47 void rtc_setdaytime(char y[3], char m[3], char d[3], char h[3], char min[3], char s[3], char week_val[2])
satoseiz 0:dd4a28744f4e 48 {
satoseiz 0:dd4a28744f4e 49 rtc_write(CONTROL1, 0x20); //stop
satoseiz 0:dd4a28744f4e 50 rtc_write(CONTROL2, 0x00);
satoseiz 0:dd4a28744f4e 51 rtc_write(YEARS, ((y[0]-0x30)<<4)+(y[1]-0x30));
satoseiz 0:dd4a28744f4e 52 rtc_write(MONTHS, ((m[0]-0x30)<<4)+(m[1]-0x30));
satoseiz 0:dd4a28744f4e 53 rtc_write(DAYS, ((d[0]-0x30)<<4)+(d[1]-0x30));
satoseiz 0:dd4a28744f4e 54 rtc_write(HOURS, ((h[0]-0x30)<<4)+(h[1]-0x30));
satoseiz 0:dd4a28744f4e 55 rtc_write(MINUTES, ((min[0]-0x30)<<4)+(min[1]-0x30));
satoseiz 0:dd4a28744f4e 56 rtc_write(SECONDS, ((s[0]-0x30)<<4)+(s[1]-0x30));
satoseiz 0:dd4a28744f4e 57 rtc_write(WEEKDAYS, week_val[0] - 0x30); //Sunday = "0", Monday = "1" ...
satoseiz 0:dd4a28744f4e 58 rtc_write(CLOCKOUT_FREQ, 0x00); // 0x83 = TE on & 1Hz
satoseiz 0:dd4a28744f4e 59 rtc_write(TIMER_CONTROL, 0x00);
satoseiz 0:dd4a28744f4e 60 rtc_write(CONTROL1, 0x00); //start
satoseiz 0:dd4a28744f4e 61 return;
satoseiz 0:dd4a28744f4e 62 }