File content as of revision 0:ae969dd370ab:
#include "mbed.h"
#include "DigitalClock.h"
#if 0
FourDigitLED led(
/* Segment 0 - 6, Dot */ D11,D6, D3, D1, D0, D10,D4, D2 ,
/* Digit 1 - 4 */ D5, D7, D9, D12
) ;
#endif
DigitalClock::DigitalClock (PinName seg0, PinName seg1, PinName seg2, PinName seg3,
PinName seg4, PinName seg5, PinName seg6, PinName dot,
PinName digit0, PinName digit1, PinName digit2, PinName digit3
) :
FourDigitLED(seg0, seg1, seg2, seg3, seg4, seg5, seg6, dot, digit0, digit1, digit2, digit3)
{
maxHour = 24 ;
} ;
DigitalClock::~DigitalClock(void){ } ;
void DigitalClock::start(void) {
Second.attach(this, &DigitalClock::flashLED, 1.0) ;
}
void DigitalClock::stop(void) {
Second.detach() ;
}
bool DigitalClock::setLED(int h, int m) {
if(((h >= 0)&&(h<maxHour)) && ((m >= 0)&&(m<60))){
setNum(3, h/10) ;
setNum(2, h%10) ;
setNum(1, m/10) ;
setNum(0, m%10) ;
return true ;
}
return false ;
}
void DigitalClock::flashLED(void) {
#define JST (9*60*60)
struct tm local;
time_t ctTime;
ctTime = time(NULL) + JST ;
local = *localtime(&ctTime);
setLED(local.tm_hour, local.tm_min) ;
}
int DigitalClock::setNum(int d, int n){
return FourDigitLED::setNum(d, n) ;
}
int DigitalClock::setDot(int d, bool n){
return FourDigitLED::setDot(d, n) ;
}