You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C++
		
	
| /*! \file
 | |
|  *  \brief Controlling the \ref CMOS "complementary metal oxide semiconductor
 | |
|  * (CMOS)"
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| #include "../types.h"
 | |
| 
 | |
| /*!
 | |
|  * \defgroup CMOS CMOS
 | |
|  * \brief complementary metal oxide semiconductor (CMOS)
 | |
|  */
 | |
| 
 | |
| /*! \brief CMOS
 | |
|  * \ingroup CMOS
 | |
|  */
 | |
| namespace CMOS {
 | |
| 
 | |
| enum Register {
 | |
|   REG_SECOND = 0x0,        ///< RTC
 | |
|   REG_ALARM_SECOND = 0x1,  ///< RTC
 | |
|   REG_MINUTE = 0x2,        ///< RTC
 | |
|   REG_ALARM_MINUTE = 0x3,  ///< RTC
 | |
|   REG_HOUR = 0x4,          ///< RTC
 | |
|   REG_ALARM_HOUR = 0x5,    ///< RTC
 | |
|   REG_WEEKDAY = 0x6,       ///< RTC
 | |
|   REG_DAYOFMONTH = 0x7,    ///< RTC
 | |
|   REG_MONTH = 0x8,         ///< RTC
 | |
|   REG_YEAR = 0x9,          ///< RTC
 | |
|   REG_STATUS_A = 0xa,      ///< RTC
 | |
|   REG_STATUS_B = 0xb,      ///< RTC
 | |
|   REG_STATUS_C = 0xc,      ///< RTC
 | |
|   REG_STATUS_D = 0xd,      ///< RTC
 | |
|   REG_STATUS_DIAGNOSE = 0xe,
 | |
|   REG_STATUS_SHUTDOWN = 0xf
 | |
| };
 | |
| 
 | |
| uint8_t read(enum Register reg);
 | |
| void write(enum Register reg, uint8_t value);
 | |
| 
 | |
| namespace NMI {
 | |
| void enable();
 | |
| void disable();
 | |
| bool isEnabled();
 | |
| }  // namespace NMI
 | |
| }  // namespace CMOS
 |