70 lines
797 B
C
70 lines
797 B
C
/*
|
|
* clock.c
|
|
*
|
|
* Created on: Mar 26, 2026
|
|
* Author: ewars
|
|
*/
|
|
|
|
|
|
#include "clock.h"
|
|
|
|
// define LED marking 12:00 or 00:00
|
|
|
|
#define LED_OFFSET 12
|
|
|
|
void clock_update(ds1307_dev_t *ds1307_dev){
|
|
|
|
ds1307_update(ds1307_dev);
|
|
}
|
|
|
|
void clock_InitModule(void){
|
|
|
|
ds1307_init();
|
|
|
|
}
|
|
|
|
|
|
uint8_t clock_convert_hours(uint8_t hours){
|
|
int8_t h = 0;
|
|
uint8_t led = 0;
|
|
|
|
// input check
|
|
if(hours < 24){
|
|
|
|
if(hours > 12){
|
|
h = hours - 12;
|
|
}
|
|
else{
|
|
h = hours;
|
|
}
|
|
|
|
led = 2 * h + LED_OFFSET;
|
|
if(led > 23){
|
|
led -= 24;
|
|
}
|
|
|
|
}
|
|
|
|
return led;
|
|
|
|
}
|
|
|
|
uint8_t clock_convert_min_sec(uint8_t min_sec){
|
|
|
|
float led = 0;
|
|
float divider = 2.5;
|
|
|
|
if(min_sec < 60){
|
|
led = (float) min_sec/divider;
|
|
|
|
|
|
led = (uint8_t) led + LED_OFFSET;
|
|
while(led > 23){
|
|
led = led - 24;
|
|
}
|
|
}
|
|
|
|
return (uint8_t) led;
|
|
}
|
|
|