Program Listing for File rtc.h#
↰ Return to documentation for file (src/generated/structs/rtc.h
)
#pragma once
#include "../ifgen/common.h"
namespace RP2040
{
struct [[gnu::packed]] rtc
{
/* Constant attributes. */
static constexpr std::size_t size = 48;
/* Fields. */
uint32_t
CLKDIV_M1;
uint32_t SETUP_0;
uint32_t SETUP_1;
uint32_t CTRL;
uint32_t IRQ_SETUP_0;
uint32_t IRQ_SETUP_1;
const uint32_t RTC_1 = {};
const uint32_t RTC_0 = {};
const uint32_t INTR = {};
uint32_t INTE;
uint32_t INTF;
const uint32_t INTS =
{};
/* Methods. */
inline uint16_t get_CLKDIV_M1_CLKDIV_M1() volatile
{
return (CLKDIV_M1 >> 0u) & 0b1111111111111111u;
}
inline void set_CLKDIV_M1_CLKDIV_M1(uint16_t value) volatile
{
uint32_t curr = CLKDIV_M1;
curr &= ~(0b1111111111111111u << 0u);
curr |= (value & 0b1111111111111111u) << 0u;
CLKDIV_M1 = curr;
}
inline uint8_t get_SETUP_0_DAY() volatile
{
return (SETUP_0 >> 0u) & 0b11111u;
}
inline void set_SETUP_0_DAY(uint8_t value) volatile
{
uint32_t curr = SETUP_0;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
SETUP_0 = curr;
}
inline uint8_t get_SETUP_0_MONTH() volatile
{
return (SETUP_0 >> 8u) & 0b1111u;
}
inline void set_SETUP_0_MONTH(uint8_t value) volatile
{
uint32_t curr = SETUP_0;
curr &= ~(0b1111u << 8u);
curr |= (value & 0b1111u) << 8u;
SETUP_0 = curr;
}
inline uint16_t get_SETUP_0_YEAR() volatile
{
return (SETUP_0 >> 12u) & 0b111111111111u;
}
inline void set_SETUP_0_YEAR(uint16_t value) volatile
{
uint32_t curr = SETUP_0;
curr &= ~(0b111111111111u << 12u);
curr |= (value & 0b111111111111u) << 12u;
SETUP_0 = curr;
}
inline void get_SETUP_0(uint8_t &DAY, uint8_t &MONTH,
uint16_t &YEAR) volatile
{
uint32_t curr = SETUP_0;
DAY = (curr >> 0u) & 0b11111u;
MONTH = (curr >> 8u) & 0b1111u;
YEAR = (curr >> 12u) & 0b111111111111u;
}
inline void set_SETUP_0(uint8_t DAY, uint8_t MONTH, uint16_t YEAR) volatile
{
uint32_t curr = SETUP_0;
curr &= ~(0b11111u << 0u);
curr |= (DAY & 0b11111u) << 0u;
curr &= ~(0b1111u << 8u);
curr |= (MONTH & 0b1111u) << 8u;
curr &= ~(0b111111111111u << 12u);
curr |= (YEAR & 0b111111111111u) << 12u;
SETUP_0 = curr;
}
inline uint8_t get_SETUP_1_SEC() volatile
{
return (SETUP_1 >> 0u) & 0b111111u;
}
inline void set_SETUP_1_SEC(uint8_t value) volatile
{
uint32_t curr = SETUP_1;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
SETUP_1 = curr;
}
inline uint8_t get_SETUP_1_MIN() volatile
{
return (SETUP_1 >> 8u) & 0b111111u;
}
inline void set_SETUP_1_MIN(uint8_t value) volatile
{
uint32_t curr = SETUP_1;
curr &= ~(0b111111u << 8u);
curr |= (value & 0b111111u) << 8u;
SETUP_1 = curr;
}
inline uint8_t get_SETUP_1_HOUR() volatile
{
return (SETUP_1 >> 16u) & 0b11111u;
}
inline void set_SETUP_1_HOUR(uint8_t value) volatile
{
uint32_t curr = SETUP_1;
curr &= ~(0b11111u << 16u);
curr |= (value & 0b11111u) << 16u;
SETUP_1 = curr;
}
inline uint8_t get_SETUP_1_DOTW() volatile
{
return (SETUP_1 >> 24u) & 0b111u;
}
inline void set_SETUP_1_DOTW(uint8_t value) volatile
{
uint32_t curr = SETUP_1;
curr &= ~(0b111u << 24u);
curr |= (value & 0b111u) << 24u;
SETUP_1 = curr;
}
inline void get_SETUP_1(uint8_t &SEC, uint8_t &MIN, uint8_t &HOUR,
uint8_t &DOTW) volatile
{
uint32_t curr = SETUP_1;
SEC = (curr >> 0u) & 0b111111u;
MIN = (curr >> 8u) & 0b111111u;
HOUR = (curr >> 16u) & 0b11111u;
DOTW = (curr >> 24u) & 0b111u;
}
inline void set_SETUP_1(uint8_t SEC, uint8_t MIN, uint8_t HOUR,
uint8_t DOTW) volatile
{
uint32_t curr = SETUP_1;
curr &= ~(0b111111u << 0u);
curr |= (SEC & 0b111111u) << 0u;
curr &= ~(0b111111u << 8u);
curr |= (MIN & 0b111111u) << 8u;
curr &= ~(0b11111u << 16u);
curr |= (HOUR & 0b11111u) << 16u;
curr &= ~(0b111u << 24u);
curr |= (DOTW & 0b111u) << 24u;
SETUP_1 = curr;
}
inline bool get_CTRL_RTC_ENABLE() volatile
{
return CTRL & (1u << 0u);
}
inline void set_CTRL_RTC_ENABLE() volatile
{
CTRL |= 1u << 0u;
}
inline void clear_CTRL_RTC_ENABLE() volatile
{
CTRL &= ~(1u << 0u);
}
inline void toggle_CTRL_RTC_ENABLE() volatile
{
CTRL ^= 1u << 0u;
}
inline bool get_CTRL_RTC_ACTIVE() volatile
{
return CTRL & (1u << 1u);
}
inline bool get_CTRL_LOAD() volatile
{
return CTRL & (1u << 4u);
}
inline void set_CTRL_LOAD() volatile
{
CTRL |= 1u << 4u;
}
inline void clear_CTRL_LOAD() volatile
{
CTRL &= ~(1u << 4u);
}
inline void toggle_CTRL_LOAD() volatile
{
CTRL ^= 1u << 4u;
}
inline bool get_CTRL_FORCE_NOTLEAPYEAR() volatile
{
return CTRL & (1u << 8u);
}
inline void set_CTRL_FORCE_NOTLEAPYEAR() volatile
{
CTRL |= 1u << 8u;
}
inline void clear_CTRL_FORCE_NOTLEAPYEAR() volatile
{
CTRL &= ~(1u << 8u);
}
inline void toggle_CTRL_FORCE_NOTLEAPYEAR() volatile
{
CTRL ^= 1u << 8u;
}
inline void get_CTRL(bool &RTC_ENABLE, bool &RTC_ACTIVE, bool &LOAD,
bool &FORCE_NOTLEAPYEAR) volatile
{
uint32_t curr = CTRL;
RTC_ENABLE = curr & (1u << 0u);
RTC_ACTIVE = curr & (1u << 1u);
LOAD = curr & (1u << 4u);
FORCE_NOTLEAPYEAR = curr & (1u << 8u);
}
inline void set_CTRL(bool RTC_ENABLE, bool LOAD,
bool FORCE_NOTLEAPYEAR) volatile
{
uint32_t curr = CTRL;
curr &= ~(0b1u << 0u);
curr |= (RTC_ENABLE & 0b1u) << 0u;
curr &= ~(0b1u << 4u);
curr |= (LOAD & 0b1u) << 4u;
curr &= ~(0b1u << 8u);
curr |= (FORCE_NOTLEAPYEAR & 0b1u) << 8u;
CTRL = curr;
}
inline uint8_t get_IRQ_SETUP_0_DAY() volatile
{
return (IRQ_SETUP_0 >> 0u) & 0b11111u;
}
inline void set_IRQ_SETUP_0_DAY(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_0;
curr &= ~(0b11111u << 0u);
curr |= (value & 0b11111u) << 0u;
IRQ_SETUP_0 = curr;
}
inline uint8_t get_IRQ_SETUP_0_MONTH() volatile
{
return (IRQ_SETUP_0 >> 8u) & 0b1111u;
}
inline void set_IRQ_SETUP_0_MONTH(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_0;
curr &= ~(0b1111u << 8u);
curr |= (value & 0b1111u) << 8u;
IRQ_SETUP_0 = curr;
}
inline uint16_t get_IRQ_SETUP_0_YEAR() volatile
{
return (IRQ_SETUP_0 >> 12u) & 0b111111111111u;
}
inline void set_IRQ_SETUP_0_YEAR(uint16_t value) volatile
{
uint32_t curr = IRQ_SETUP_0;
curr &= ~(0b111111111111u << 12u);
curr |= (value & 0b111111111111u) << 12u;
IRQ_SETUP_0 = curr;
}
inline bool get_IRQ_SETUP_0_DAY_ENA() volatile
{
return IRQ_SETUP_0 & (1u << 24u);
}
inline void set_IRQ_SETUP_0_DAY_ENA() volatile
{
IRQ_SETUP_0 |= 1u << 24u;
}
inline void clear_IRQ_SETUP_0_DAY_ENA() volatile
{
IRQ_SETUP_0 &= ~(1u << 24u);
}
inline void toggle_IRQ_SETUP_0_DAY_ENA() volatile
{
IRQ_SETUP_0 ^= 1u << 24u;
}
inline bool get_IRQ_SETUP_0_MONTH_ENA() volatile
{
return IRQ_SETUP_0 & (1u << 25u);
}
inline void set_IRQ_SETUP_0_MONTH_ENA() volatile
{
IRQ_SETUP_0 |= 1u << 25u;
}
inline void clear_IRQ_SETUP_0_MONTH_ENA() volatile
{
IRQ_SETUP_0 &= ~(1u << 25u);
}
inline void toggle_IRQ_SETUP_0_MONTH_ENA() volatile
{
IRQ_SETUP_0 ^= 1u << 25u;
}
inline bool get_IRQ_SETUP_0_YEAR_ENA() volatile
{
return IRQ_SETUP_0 & (1u << 26u);
}
inline void set_IRQ_SETUP_0_YEAR_ENA() volatile
{
IRQ_SETUP_0 |= 1u << 26u;
}
inline void clear_IRQ_SETUP_0_YEAR_ENA() volatile
{
IRQ_SETUP_0 &= ~(1u << 26u);
}
inline void toggle_IRQ_SETUP_0_YEAR_ENA() volatile
{
IRQ_SETUP_0 ^= 1u << 26u;
}
inline bool get_IRQ_SETUP_0_MATCH_ENA() volatile
{
return IRQ_SETUP_0 & (1u << 28u);
}
inline void set_IRQ_SETUP_0_MATCH_ENA() volatile
{
IRQ_SETUP_0 |= 1u << 28u;
}
inline void clear_IRQ_SETUP_0_MATCH_ENA() volatile
{
IRQ_SETUP_0 &= ~(1u << 28u);
}
inline void toggle_IRQ_SETUP_0_MATCH_ENA() volatile
{
IRQ_SETUP_0 ^= 1u << 28u;
}
inline bool get_IRQ_SETUP_0_MATCH_ACTIVE() volatile
{
return IRQ_SETUP_0 & (1u << 29u);
}
inline void get_IRQ_SETUP_0(uint8_t &DAY, uint8_t &MONTH, uint16_t &YEAR,
bool &DAY_ENA, bool &MONTH_ENA, bool &YEAR_ENA,
bool &MATCH_ENA, bool &MATCH_ACTIVE) volatile
{
uint32_t curr = IRQ_SETUP_0;
DAY = (curr >> 0u) & 0b11111u;
MONTH = (curr >> 8u) & 0b1111u;
YEAR = (curr >> 12u) & 0b111111111111u;
DAY_ENA = curr & (1u << 24u);
MONTH_ENA = curr & (1u << 25u);
YEAR_ENA = curr & (1u << 26u);
MATCH_ENA = curr & (1u << 28u);
MATCH_ACTIVE = curr & (1u << 29u);
}
inline void set_IRQ_SETUP_0(uint8_t DAY, uint8_t MONTH, uint16_t YEAR,
bool DAY_ENA, bool MONTH_ENA, bool YEAR_ENA,
bool MATCH_ENA) volatile
{
uint32_t curr = IRQ_SETUP_0;
curr &= ~(0b11111u << 0u);
curr |= (DAY & 0b11111u) << 0u;
curr &= ~(0b1111u << 8u);
curr |= (MONTH & 0b1111u) << 8u;
curr &= ~(0b111111111111u << 12u);
curr |= (YEAR & 0b111111111111u) << 12u;
curr &= ~(0b1u << 24u);
curr |= (DAY_ENA & 0b1u) << 24u;
curr &= ~(0b1u << 25u);
curr |= (MONTH_ENA & 0b1u) << 25u;
curr &= ~(0b1u << 26u);
curr |= (YEAR_ENA & 0b1u) << 26u;
curr &= ~(0b1u << 28u);
curr |= (MATCH_ENA & 0b1u) << 28u;
IRQ_SETUP_0 = curr;
}
inline uint8_t get_IRQ_SETUP_1_SEC() volatile
{
return (IRQ_SETUP_1 >> 0u) & 0b111111u;
}
inline void set_IRQ_SETUP_1_SEC(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_1;
curr &= ~(0b111111u << 0u);
curr |= (value & 0b111111u) << 0u;
IRQ_SETUP_1 = curr;
}
inline uint8_t get_IRQ_SETUP_1_MIN() volatile
{
return (IRQ_SETUP_1 >> 8u) & 0b111111u;
}
inline void set_IRQ_SETUP_1_MIN(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_1;
curr &= ~(0b111111u << 8u);
curr |= (value & 0b111111u) << 8u;
IRQ_SETUP_1 = curr;
}
inline uint8_t get_IRQ_SETUP_1_HOUR() volatile
{
return (IRQ_SETUP_1 >> 16u) & 0b11111u;
}
inline void set_IRQ_SETUP_1_HOUR(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_1;
curr &= ~(0b11111u << 16u);
curr |= (value & 0b11111u) << 16u;
IRQ_SETUP_1 = curr;
}
inline uint8_t get_IRQ_SETUP_1_DOTW() volatile
{
return (IRQ_SETUP_1 >> 24u) & 0b111u;
}
inline void set_IRQ_SETUP_1_DOTW(uint8_t value) volatile
{
uint32_t curr = IRQ_SETUP_1;
curr &= ~(0b111u << 24u);
curr |= (value & 0b111u) << 24u;
IRQ_SETUP_1 = curr;
}
inline bool get_IRQ_SETUP_1_SEC_ENA() volatile
{
return IRQ_SETUP_1 & (1u << 28u);
}
inline void set_IRQ_SETUP_1_SEC_ENA() volatile
{
IRQ_SETUP_1 |= 1u << 28u;
}
inline void clear_IRQ_SETUP_1_SEC_ENA() volatile
{
IRQ_SETUP_1 &= ~(1u << 28u);
}
inline void toggle_IRQ_SETUP_1_SEC_ENA() volatile
{
IRQ_SETUP_1 ^= 1u << 28u;
}
inline bool get_IRQ_SETUP_1_MIN_ENA() volatile
{
return IRQ_SETUP_1 & (1u << 29u);
}
inline void set_IRQ_SETUP_1_MIN_ENA() volatile
{
IRQ_SETUP_1 |= 1u << 29u;
}
inline void clear_IRQ_SETUP_1_MIN_ENA() volatile
{
IRQ_SETUP_1 &= ~(1u << 29u);
}
inline void toggle_IRQ_SETUP_1_MIN_ENA() volatile
{
IRQ_SETUP_1 ^= 1u << 29u;
}
inline bool get_IRQ_SETUP_1_HOUR_ENA() volatile
{
return IRQ_SETUP_1 & (1u << 30u);
}
inline void set_IRQ_SETUP_1_HOUR_ENA() volatile
{
IRQ_SETUP_1 |= 1u << 30u;
}
inline void clear_IRQ_SETUP_1_HOUR_ENA() volatile
{
IRQ_SETUP_1 &= ~(1u << 30u);
}
inline void toggle_IRQ_SETUP_1_HOUR_ENA() volatile
{
IRQ_SETUP_1 ^= 1u << 30u;
}
inline bool get_IRQ_SETUP_1_DOTW_ENA() volatile
{
return IRQ_SETUP_1 & (1u << 31u);
}
inline void set_IRQ_SETUP_1_DOTW_ENA() volatile
{
IRQ_SETUP_1 |= 1u << 31u;
}
inline void clear_IRQ_SETUP_1_DOTW_ENA() volatile
{
IRQ_SETUP_1 &= ~(1u << 31u);
}
inline void toggle_IRQ_SETUP_1_DOTW_ENA() volatile
{
IRQ_SETUP_1 ^= 1u << 31u;
}
inline void get_IRQ_SETUP_1(uint8_t &SEC, uint8_t &MIN, uint8_t &HOUR,
uint8_t &DOTW, bool &SEC_ENA, bool &MIN_ENA,
bool &HOUR_ENA, bool &DOTW_ENA) volatile
{
uint32_t curr = IRQ_SETUP_1;
SEC = (curr >> 0u) & 0b111111u;
MIN = (curr >> 8u) & 0b111111u;
HOUR = (curr >> 16u) & 0b11111u;
DOTW = (curr >> 24u) & 0b111u;
SEC_ENA = curr & (1u << 28u);
MIN_ENA = curr & (1u << 29u);
HOUR_ENA = curr & (1u << 30u);
DOTW_ENA = curr & (1u << 31u);
}
inline void set_IRQ_SETUP_1(uint8_t SEC, uint8_t MIN, uint8_t HOUR,
uint8_t DOTW, bool SEC_ENA, bool MIN_ENA,
bool HOUR_ENA, bool DOTW_ENA) volatile
{
uint32_t curr = IRQ_SETUP_1;
curr &= ~(0b111111u << 0u);
curr |= (SEC & 0b111111u) << 0u;
curr &= ~(0b111111u << 8u);
curr |= (MIN & 0b111111u) << 8u;
curr &= ~(0b11111u << 16u);
curr |= (HOUR & 0b11111u) << 16u;
curr &= ~(0b111u << 24u);
curr |= (DOTW & 0b111u) << 24u;
curr &= ~(0b1u << 28u);
curr |= (SEC_ENA & 0b1u) << 28u;
curr &= ~(0b1u << 29u);
curr |= (MIN_ENA & 0b1u) << 29u;
curr &= ~(0b1u << 30u);
curr |= (HOUR_ENA & 0b1u) << 30u;
curr &= ~(0b1u << 31u);
curr |= (DOTW_ENA & 0b1u) << 31u;
IRQ_SETUP_1 = curr;
}
inline uint8_t get_RTC_1_DAY() volatile
{
return (RTC_1 >> 0u) & 0b11111u;
}
inline uint8_t get_RTC_1_MONTH() volatile
{
return (RTC_1 >> 8u) & 0b1111u;
}
inline uint16_t get_RTC_1_YEAR() volatile
{
return (RTC_1 >> 12u) & 0b111111111111u;
}
inline void get_RTC_1(uint8_t &DAY, uint8_t &MONTH,
uint16_t &YEAR) volatile
{
uint32_t curr = RTC_1;
DAY = (curr >> 0u) & 0b11111u;
MONTH = (curr >> 8u) & 0b1111u;
YEAR = (curr >> 12u) & 0b111111111111u;
}
inline uint8_t get_RTC_0_SEC() volatile
{
return (RTC_0 >> 0u) & 0b111111u;
}
inline uint8_t get_RTC_0_MIN() volatile
{
return (RTC_0 >> 8u) & 0b111111u;
}
inline uint8_t get_RTC_0_HOUR() volatile
{
return (RTC_0 >> 16u) & 0b11111u;
}
inline uint8_t get_RTC_0_DOTW() volatile
{
return (RTC_0 >> 24u) & 0b111u;
}
inline void get_RTC_0(uint8_t &SEC, uint8_t &MIN, uint8_t &HOUR,
uint8_t &DOTW) volatile
{
uint32_t curr = RTC_0;
SEC = (curr >> 0u) & 0b111111u;
MIN = (curr >> 8u) & 0b111111u;
HOUR = (curr >> 16u) & 0b11111u;
DOTW = (curr >> 24u) & 0b111u;
}
inline bool get_INTR_RTC() volatile
{
return INTR & (1u << 0u);
}
inline bool get_INTE_RTC() volatile
{
return INTE & (1u << 0u);
}
inline void set_INTE_RTC() volatile
{
INTE |= 1u << 0u;
}
inline void clear_INTE_RTC() volatile
{
INTE &= ~(1u << 0u);
}
inline void toggle_INTE_RTC() volatile
{
INTE ^= 1u << 0u;
}
inline bool get_INTF_RTC() volatile
{
return INTF & (1u << 0u);
}
inline void set_INTF_RTC() volatile
{
INTF |= 1u << 0u;
}
inline void clear_INTF_RTC() volatile
{
INTF &= ~(1u << 0u);
}
inline void toggle_INTF_RTC() volatile
{
INTF ^= 1u << 0u;
}
inline bool get_INTS_RTC() volatile
{
return INTS & (1u << 0u);
}
};
static_assert(sizeof(rtc) == rtc::size);
static volatile rtc *const RTC = reinterpret_cast<rtc *>(0x4005c000);
}; // namespace RP2040