Wecker-Library

Dependents:   Projekt_Wecker_LCD Projekt_Wecker_LCD Projekt_Wecker_LCD

Committer:
wolpra98
Date:
Fri May 29 11:58:57 2015 +0000
Revision:
1:ade7876100e2
Parent:
0:6f0b18518e88
Completed the Alarm Clock

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolpra98 0:6f0b18518e88 1 #include "mbed.h"
wolpra98 0:6f0b18518e88 2 #include "LCD.h"
wolpra98 0:6f0b18518e88 3 #include "const.h"
wolpra98 0:6f0b18518e88 4 #include "RTC8563.h"
wolpra98 0:6f0b18518e88 5 #include "Wecker.h"
wolpra98 0:6f0b18518e88 6
wolpra98 1:ade7876100e2 7
wolpra98 1:ade7876100e2 8 /*char week;
wolpra98 0:6f0b18518e88 9 int hour, minute, sec;
wolpra98 0:6f0b18518e88 10 int hrse, hrsz, mine, minz, sece, secz;
wolpra98 0:6f0b18518e88 11 int ahour, aminute, ahrse, ahrsz, amine, aminz;
wolpra98 0:6f0b18518e88 12 int nextStd, nextMin;
wolpra98 0:6f0b18518e88 13 typedef enum {Normal, setAlarm, AlarmOn, Alarm, Sleep} state;
wolpra98 0:6f0b18518e88 14 Ticker tick1;
wolpra98 1:ade7876100e2 15 Timer tim1,tim2;*/
wolpra98 0:6f0b18518e88 16
wolpra98 0:6f0b18518e88 17 RTC8563 rtc;
wolpra98 0:6f0b18518e88 18 Serial pc(USBTX, USBRX);
wolpra98 0:6f0b18518e88 19 I2C i2c(p28, p27);
wolpra98 0:6f0b18518e88 20 LCD lcd(p11, p6, p7, p8, p9, p10);
wolpra98 0:6f0b18518e88 21
wolpra98 0:6f0b18518e88 22 Wecker::Wecker()
wolpra98 0:6f0b18518e88 23 {
wolpra98 1:ade7876100e2 24
wolpra98 0:6f0b18518e88 25 //tick1.attach(this, &Wecker::tickHold,0.1);
wolpra98 0:6f0b18518e88 26 }
wolpra98 0:6f0b18518e88 27
wolpra98 0:6f0b18518e88 28 void Wecker::printTime()
wolpra98 0:6f0b18518e88 29 {
wolpra98 0:6f0b18518e88 30 lcd.home();
wolpra98 0:6f0b18518e88 31 week = rtc.rtc_read(WEEKDAYS);
wolpra98 0:6f0b18518e88 32 hour = rtc.rtc_read(HOURS);
wolpra98 0:6f0b18518e88 33 minute = rtc.rtc_read(MINUTES);
wolpra98 0:6f0b18518e88 34 sec = rtc.rtc_read(SECONDS);
wolpra98 0:6f0b18518e88 35
wolpra98 0:6f0b18518e88 36 hrsz = ((hour >> 4)&0x03) + 48;
wolpra98 0:6f0b18518e88 37 hrse = (hour & 0x0F) + 48;
wolpra98 0:6f0b18518e88 38 minz = (minute >> 4) + 48;
wolpra98 0:6f0b18518e88 39 mine = (minute & 0x0F) + 48;
wolpra98 0:6f0b18518e88 40 secz = (sec >> 4) + 48;
wolpra98 0:6f0b18518e88 41 sece = (sec & 0x0F) + 48;
wolpra98 0:6f0b18518e88 42
wolpra98 0:6f0b18518e88 43 lcd.data(hrsz);
wolpra98 0:6f0b18518e88 44 lcd.data(hrse);
wolpra98 0:6f0b18518e88 45 lcd.string(":");
wolpra98 0:6f0b18518e88 46 lcd.data(minz);
wolpra98 0:6f0b18518e88 47 lcd.data(mine);
wolpra98 0:6f0b18518e88 48 lcd.string(":");
wolpra98 0:6f0b18518e88 49 lcd.data(secz);
wolpra98 0:6f0b18518e88 50 lcd.data(sece);
wolpra98 0:6f0b18518e88 51 }
wolpra98 0:6f0b18518e88 52 int Wecker::bcd(int dec)
wolpra98 0:6f0b18518e88 53 {
wolpra98 0:6f0b18518e88 54 return ((dec/10)<<4)+(dec%10);
wolpra98 0:6f0b18518e88 55 }
wolpra98 0:6f0b18518e88 56 int Wecker::unbcd(int bcd)
wolpra98 0:6f0b18518e88 57 {
wolpra98 0:6f0b18518e88 58 return ((bcd>>4)*10)+(bcd%16);
wolpra98 0:6f0b18518e88 59 }
wolpra98 0:6f0b18518e88 60
wolpra98 0:6f0b18518e88 61 void Wecker::printAlarmTime()
wolpra98 0:6f0b18518e88 62 {
wolpra98 0:6f0b18518e88 63 lcd.setcursor(0,2);
wolpra98 0:6f0b18518e88 64 ahour = rtc.rtc_read(HOUR_ALARM);
wolpra98 0:6f0b18518e88 65 aminute = rtc.rtc_read(MINUTE_ALARM);
wolpra98 0:6f0b18518e88 66
wolpra98 0:6f0b18518e88 67 ahrsz = ((ahour >> 4)&0x03) + 48;
wolpra98 0:6f0b18518e88 68 ahrse = (ahour & 0x0F) + 48;
wolpra98 0:6f0b18518e88 69 aminz = (aminute >> 4) + 48;
wolpra98 0:6f0b18518e88 70 amine = (aminute & 0x0F) + 48;
wolpra98 0:6f0b18518e88 71
wolpra98 0:6f0b18518e88 72 lcd.string("Alarm:");
wolpra98 0:6f0b18518e88 73 lcd.data(ahrsz);
wolpra98 0:6f0b18518e88 74 lcd.data(ahrse);
wolpra98 0:6f0b18518e88 75 lcd.string(":");
wolpra98 0:6f0b18518e88 76 lcd.data(aminz);
wolpra98 0:6f0b18518e88 77 lcd.data(amine);
wolpra98 0:6f0b18518e88 78 lcd.string(":00");
wolpra98 0:6f0b18518e88 79
wolpra98 0:6f0b18518e88 80 }
wolpra98 0:6f0b18518e88 81
wolpra98 1:ade7876100e2 82 void Wecker::printState(char *Mode)
wolpra98 0:6f0b18518e88 83 {
wolpra98 1:ade7876100e2 84 lcd.setcursor(14,1);
wolpra98 1:ade7876100e2 85 lcd.string(Mode);
wolpra98 0:6f0b18518e88 86 }