root / proj / src / libs / rtc / include / rtc.h @ 380
History | View | Annotate | Download (4.31 KB)
1 | 234 | up20180655 | #ifndef RTC_H_INCLUDED
|
---|---|---|---|
2 | #define RTC_H_INCLUDED
|
||
3 | |||
4 | 334 | up20180642 | /**
|
5 | * @defgroup rtc rtc
|
||
6 | 351 | up20180642 | * @ingroup libs
|
7 | 334 | up20180642 | * @brief RTC (Real-Time Clock) module.
|
8 | *
|
||
9 | * @{
|
||
10 | */
|
||
11 | |||
12 | 234 | up20180655 | #include <stdint.h> |
13 | |||
14 | 380 | up20180655 | // RTC IRQ Line
|
15 | |||
16 | #define RTC_IRQ 8 /* @brief RTC IRQ Line */ |
||
17 | |||
18 | 234 | up20180655 | /**
|
19 | * @brief Subscribes RTC Interrupts
|
||
20 | * @param interrupt_bit Bit of Interrupt Vector that will be set when RTC Interrupt is pending
|
||
21 | * @param interrupt_id RTC Interrupt ID to specify the RTC Interrupt in other calls
|
||
22 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
23 | * @see {_ERRORS_H_::errors}
|
||
24 | */
|
||
25 | int (subscribe_rtc_interrupt)(uint8_t interrupt_bit, int *interrupt_id); |
||
26 | |||
27 | 345 | up20180642 | /**
|
28 | * @brief Read RTC register.
|
||
29 | * @param reg Register to read from
|
||
30 | * @param data Pointer to save read data
|
||
31 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
32 | * @see {_ERRORS_H_::errors}
|
||
33 | */
|
||
34 | 234 | up20180655 | int (rtc_read_register)(uint32_t reg, uint8_t *data);
|
35 | 345 | up20180642 | /**
|
36 | * @brief Write RTC register.
|
||
37 | * @param reg Register to write to
|
||
38 | * @param data Data to write in register
|
||
39 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
40 | * @see {_ERRORS_H_::errors}
|
||
41 | */
|
||
42 | 234 | up20180655 | int (rtc_write_register)(uint32_t reg, uint8_t data);
|
43 | |||
44 | /**
|
||
45 | 380 | up20180655 | * @brief Reads seconds register.
|
46 | *
|
||
47 | * @param sec Address to store value
|
||
48 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
49 | * @see {_ERRORS_H_::errors}
|
||
50 | */
|
||
51 | int rtc_read_sec(uint8_t *sec);
|
||
52 | |||
53 | /**
|
||
54 | * @brief Reads minutes register.
|
||
55 | *
|
||
56 | * @param min Address to store value
|
||
57 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
58 | * @see {_ERRORS_H_::errors}
|
||
59 | */
|
||
60 | int rtc_read_min(uint8_t *min);
|
||
61 | |||
62 | /**
|
||
63 | * @brief Reads hours register.
|
||
64 | *
|
||
65 | * @param hour Address to store value
|
||
66 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
67 | * @see {_ERRORS_H_::errors}
|
||
68 | */
|
||
69 | int rtc_read_hour(uint8_t *hour);
|
||
70 | /**
|
||
71 | * @brief Reads weekday register.
|
||
72 | *
|
||
73 | * @param hour Address to store value
|
||
74 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
75 | * @see {_ERRORS_H_::errors}
|
||
76 | */
|
||
77 | int (rtc_read_weekday)(uint8_t *weekday);
|
||
78 | /**
|
||
79 | * @brief Reads day register.
|
||
80 | *
|
||
81 | * @param hour Address to store value
|
||
82 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
83 | * @see {_ERRORS_H_::errors}
|
||
84 | */
|
||
85 | int (rtc_read_day)(uint8_t *day);
|
||
86 | /**
|
||
87 | * @brief Reads month register.
|
||
88 | *
|
||
89 | * @param hour Address to store value
|
||
90 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
91 | * @see {_ERRORS_H_::errors}
|
||
92 | */
|
||
93 | int (rtc_read_month)(uint8_t *month);
|
||
94 | /**
|
||
95 | * @brief Reads year register.
|
||
96 | *
|
||
97 | * @param hour Address to store value
|
||
98 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
99 | * @see {_ERRORS_H_::errors}
|
||
100 | */
|
||
101 | int (rtc_read_year)(uint8_t *year);
|
||
102 | |||
103 | /**
|
||
104 | 234 | up20180655 | * @brief Checks if there's an update in progress.
|
105 | * @return The value of the flag UIP, or ERROR_CODE if error occurs.
|
||
106 | */
|
||
107 | int (rtc_check_update)(void); |
||
108 | |||
109 | /**
|
||
110 | 380 | up20180655 | * @brief Enables/Disables interrupts on update.
|
111 | 234 | up20180655 | * @param on zero to disable, any other value to enable
|
112 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
113 | */
|
||
114 | 380 | up20180655 | int (rtc_set_updates_int)(int on); |
115 | 234 | up20180655 | |
116 | /**
|
||
117 | * @brief Reads time from RTC.
|
||
118 | * @param time Pointer to array of 3 bytes to store the information about time (hours, minutes, seconds)
|
||
119 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
120 | */
|
||
121 | int (rtc_read_time)(uint8_t *time);
|
||
122 | |||
123 | /**
|
||
124 | * @brief Reads date from RTC.
|
||
125 | * @param date Pointer to array of 4 bytes to store the information about date (year, month, day, weekday)
|
||
126 | * @return ERROR_CODE code representing the result of the operation, SUCCESS code is returned if everything is OK
|
||
127 | */
|
||
128 | int (rtc_read_date)(uint8_t *date);
|
||
129 | 380 | up20180655 | /// @brief RTC Interrupt Handler
|
130 | void rtc_ih();
|
||
131 | 234 | up20180655 | |
132 | 334 | up20180642 | /**
|
133 | * @}
|
||
134 | */
|
||
135 | |||
136 | 234 | up20180655 | #endif /* end of include guard: RTC_H_INCLUDED */ |