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
|