Wecker-Library

Dependents:   Projekt_Wecker_LCD Projekt_Wecker_LCD Projekt_Wecker_LCD

Wecker.cpp

Committer:
wolpra98
Date:
2015-05-29
Revision:
1:ade7876100e2
Parent:
0:6f0b18518e88

File content as of revision 1:ade7876100e2:

#include "mbed.h"
#include "LCD.h"
#include "const.h"
#include "RTC8563.h"
#include "Wecker.h"


/*char week;
int hour, minute, sec;
int hrse, hrsz, mine, minz, sece, secz;
int ahour, aminute, ahrse, ahrsz, amine, aminz;
int nextStd, nextMin;
typedef enum {Normal, setAlarm, AlarmOn, Alarm, Sleep} state;
Ticker tick1;
Timer tim1,tim2;*/

RTC8563 rtc;
Serial pc(USBTX, USBRX);
I2C i2c(p28, p27);
LCD lcd(p11, p6, p7, p8, p9, p10);

Wecker::Wecker()
{

    //tick1.attach(this, &Wecker::tickHold,0.1);
}

void Wecker::printTime()
{
    lcd.home();
    week = rtc.rtc_read(WEEKDAYS);
    hour = rtc.rtc_read(HOURS);
    minute = rtc.rtc_read(MINUTES);
    sec = rtc.rtc_read(SECONDS);

    hrsz = ((hour >> 4)&0x03) + 48;
    hrse = (hour & 0x0F) + 48;
    minz = (minute >> 4) + 48;
    mine = (minute & 0x0F) + 48;
    secz = (sec >> 4) + 48;
    sece = (sec & 0x0F) + 48;

    lcd.data(hrsz);
    lcd.data(hrse);
    lcd.string(":");
    lcd.data(minz);
    lcd.data(mine);
    lcd.string(":");
    lcd.data(secz);
    lcd.data(sece);
}
int Wecker::bcd(int dec)
{
    return ((dec/10)<<4)+(dec%10);
}
int Wecker::unbcd(int bcd)
{
    return ((bcd>>4)*10)+(bcd%16);
}

void Wecker::printAlarmTime()
{
    lcd.setcursor(0,2);
    ahour = rtc.rtc_read(HOUR_ALARM);
    aminute = rtc.rtc_read(MINUTE_ALARM);

    ahrsz = ((ahour >> 4)&0x03) + 48;
    ahrse = (ahour & 0x0F) + 48;
    aminz = (aminute >> 4) + 48;
    amine = (aminute & 0x0F) + 48;

    lcd.string("Alarm:");
    lcd.data(ahrsz);
    lcd.data(ahrse);
    lcd.string(":");
    lcd.data(aminz);
    lcd.data(amine);
    lcd.string(":00");

}

void Wecker::printState(char *Mode)
{
    lcd.setcursor(14,1);
    lcd.string(Mode);
    }