Low-level RTC (Real Time Clock) peripheral driver.  
More...
Low-level RTC (Real Time Clock) peripheral driver. 
- Note
 - The values used for setting and getting the time/alarm should conform to the 
struct tm specification. Compare: http://pubs.opengroup.org/onlinepubs/7908799/xsh/time.h.html 
(Low-) Power Implications
After the RTC has been initialized (i.e. after calling rtc_init()), the RTC should be powered on and running. The RTC can then be powered off manually at a later point in time by calling the rtc_poweroff() function. When the RTC is powered back on using the rtc_poweron() function, it should transparently continue its previously configured operation.
On many CPUs, certain power states might need to be blocked in rtc_init(), so that it is ensured that the RTC will function properly while it is enabled. 
 | 
| file   | rtc.h | 
|   | Low-level RTC peripheral driver interface definitions. 
  | 
|   | 
◆ RIOT_EPOCH
      
        
          | #define RIOT_EPOCH   (2020) | 
        
      
 
Earliest year of the RTC. 
01.01.$RIOT_EPOCH will be the reset value of the RTC if supported.
Internal RTC helper functions such as rtc_mktime and rtc_localtime will not work on dates earlier than that. 
Definition at line 58 of file rtc.h.
 
 
◆ rtc_alarm_cb_t
      
        
          | typedef void(* rtc_alarm_cb_t) (void *arg) | 
        
      
 
Signature for alarm Callback. 
- Parameters
 - 
  
    | [in] | arg | optional argument to put the callback in the right context  | 
  
   
Definition at line 66 of file rtc.h.
 
 
◆ rtc_get_alarm()
      
        
          | int rtc_get_alarm  | 
          ( | 
          struct tm *  | 
          time | ) | 
           | 
        
      
 
Gets the current alarm setting. 
- Parameters
 - 
  
    | [out] | time | Pointer to structure to receive alarm time | 
  
   
- Returns
 - 0 for success 
 
- 
-1 an error occurred 
 
 
 
◆ rtc_get_time()
      
        
          | int rtc_get_time  | 
          ( | 
          struct tm *  | 
          time | ) | 
           | 
        
      
 
Get current RTC time. 
- Parameters
 - 
  
    | [out] | time | Pointer to the struct to write the time to. | 
  
   
- Returns
 - 0 for success 
 
- 
-1 an error occurred 
 
 
 
◆ rtc_get_time_ms()
      
        
          | int rtc_get_time_ms  | 
          ( | 
          struct tm *  | 
          time,  | 
        
        
           | 
           | 
          uint16_t *  | 
          ms  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Get current RTC time with sub-second component. 
Requires the periph_rtc_ms feature.
- Parameters
 - 
  
    | [out] | time | Pointer to the struct to write the time to.  | 
    | [out] | ms | Pointer to a variable to hold the microsecond component of the current RTC time. | 
  
   
- Returns
 - 0 for success 
 
- 
-1 an error occurred 
 
 
 
◆ rtc_set_alarm()
Set an alarm for RTC to the specified value. 
- Note
 - Any already set alarm will be overwritten.
 
- Parameters
 - 
  
    | [in] | time | The value to trigger an alarm when hit.  | 
    | [in] | cb | Callback executed when alarm is hit.  | 
    | [in] | arg | Argument passed to callback when alarm is hit. | 
  
   
- Note
 - The driver must be prepared to work with denormalized time values (e.g. seconds > 60). The driver may normalize the value, or just keep it denormalized. In either case, the timeout should occur at the equivalent normalized time.
 
- Return values
 - 
  
  
 
- Returns
 - -EINVAL 
time was invalid (e.g. in the past, out of range)  
- 
<0 other error (negative errno code to indicate cause) 
 
 
 
◆ rtc_set_time()
      
        
          | int rtc_set_time  | 
          ( | 
          struct tm *  | 
          time | ) | 
           | 
        
      
 
Set RTC to given time. 
- Parameters
 - 
  
    | [in] | time | Pointer to the struct holding the time to set. | 
  
   
- Returns
 - 0 for success 
 
- 
-1 an error occurred