blob: 892479f1e512ece3c042787cc6e8689b041120d3 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#ifndef CLOCK_H_
#define CLOCK_H_
#include <time.h>
typedef struct {
u32 end; // real end time
u16 read, write; // read write caches
} ClockTimer;
typedef struct {
ClockTimer t1, t2, t3, t4; // timers
u32 start; // uptime offset
} ClockDevice;
#define YEAR(tm) (tm->tm_year - 100)
#define MONTH(tm) (tm->tm_mon)
#define DAY(tm) (tm->tm_mday - 1)
#define HOUR(tm) (tm->tm_hour)
#define MINUTE(tm) (tm->tm_min)
#define SECOND(tm) (tm->tm_sec)
u32 get_uptime(void);
void uptime_handler(void);
void init_clock(void);
struct tm* get_datetime(void);
bool check_timers(ClockDevice *clk);
u8 get_timer1_high(ClockDevice *clock);
u8 get_timer1_low( ClockDevice *clock);
u8 get_timer2_high(ClockDevice *clock);
u8 get_timer2_low( ClockDevice *clock);
u8 get_timer3_high(ClockDevice *clock);
u8 get_timer3_low( ClockDevice *clock);
u8 get_timer4_high(ClockDevice *clock);
u8 get_timer4_low( ClockDevice *clock);
void set_timer1_high(ClockDevice *clock, u8 high);
void set_timer1_low( ClockDevice *clock, u8 low);
void set_timer2_high(ClockDevice *clock, u8 high);
void set_timer2_low( ClockDevice *clock, u8 low);
void set_timer3_high(ClockDevice *clock, u8 high);
void set_timer3_low( ClockDevice *clock, u8 low);
void set_timer4_high(ClockDevice *clock, u8 high);
void set_timer4_low( ClockDevice *clock, u8 low);
#endif
|