stm32f1_staging/stm32f101/pwr/cr.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
///Register `CR` reader
pub type R = crate::R<CRrs>;
///Register `CR` writer
pub type W = crate::W<CRrs>;
///Field `LPDS` reader - Low Power Deep Sleep
pub type LPDS_R = crate::BitReader;
///Field `LPDS` writer - Low Power Deep Sleep
pub type LPDS_W<'a, REG> = crate::BitWriter<'a, REG>;
/**Power Down Deep Sleep
Value on reset: 0*/
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PDDS {
///0: Enter Stop mode when the CPU enters deepsleep
StopMode = 0,
///1: Enter Standby mode when the CPU enters deepsleep
StandbyMode = 1,
}
impl From<PDDS> for bool {
#[inline(always)]
fn from(variant: PDDS) -> Self {
variant as u8 != 0
}
}
///Field `PDDS` reader - Power Down Deep Sleep
pub type PDDS_R = crate::BitReader<PDDS>;
impl PDDS_R {
///Get enumerated values variant
#[inline(always)]
pub const fn variant(&self) -> PDDS {
match self.bits {
false => PDDS::StopMode,
true => PDDS::StandbyMode,
}
}
///Enter Stop mode when the CPU enters deepsleep
#[inline(always)]
pub fn is_stop_mode(&self) -> bool {
*self == PDDS::StopMode
}
///Enter Standby mode when the CPU enters deepsleep
#[inline(always)]
pub fn is_standby_mode(&self) -> bool {
*self == PDDS::StandbyMode
}
}
///Field `PDDS` writer - Power Down Deep Sleep
pub type PDDS_W<'a, REG> = crate::BitWriter<'a, REG, PDDS>;
impl<'a, REG> PDDS_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
///Enter Stop mode when the CPU enters deepsleep
#[inline(always)]
pub fn stop_mode(self) -> &'a mut crate::W<REG> {
self.variant(PDDS::StopMode)
}
///Enter Standby mode when the CPU enters deepsleep
#[inline(always)]
pub fn standby_mode(self) -> &'a mut crate::W<REG> {
self.variant(PDDS::StandbyMode)
}
}
///Field `CWUF` reader - Clear Wake-up Flag
pub type CWUF_R = crate::BitReader;
///Field `CWUF` writer - Clear Wake-up Flag
pub type CWUF_W<'a, REG> = crate::BitWriter<'a, REG>;
///Field `CSBF` reader - Clear STANDBY Flag
pub type CSBF_R = crate::BitReader;
///Field `CSBF` writer - Clear STANDBY Flag
pub type CSBF_W<'a, REG> = crate::BitWriter<'a, REG>;
///Field `PVDE` reader - Power Voltage Detector Enable
pub type PVDE_R = crate::BitReader;
///Field `PVDE` writer - Power Voltage Detector Enable
pub type PVDE_W<'a, REG> = crate::BitWriter<'a, REG>;
///Field `PLS` reader - PVD Level Selection
pub type PLS_R = crate::FieldReader;
///Field `PLS` writer - PVD Level Selection
pub type PLS_W<'a, REG> = crate::FieldWriter<'a, REG, 3>;
///Field `DBP` reader - Disable Backup Domain write protection
pub type DBP_R = crate::BitReader;
///Field `DBP` writer - Disable Backup Domain write protection
pub type DBP_W<'a, REG> = crate::BitWriter<'a, REG>;
impl R {
///Bit 0 - Low Power Deep Sleep
#[inline(always)]
pub fn lpds(&self) -> LPDS_R {
LPDS_R::new((self.bits & 1) != 0)
}
///Bit 1 - Power Down Deep Sleep
#[inline(always)]
pub fn pdds(&self) -> PDDS_R {
PDDS_R::new(((self.bits >> 1) & 1) != 0)
}
///Bit 2 - Clear Wake-up Flag
#[inline(always)]
pub fn cwuf(&self) -> CWUF_R {
CWUF_R::new(((self.bits >> 2) & 1) != 0)
}
///Bit 3 - Clear STANDBY Flag
#[inline(always)]
pub fn csbf(&self) -> CSBF_R {
CSBF_R::new(((self.bits >> 3) & 1) != 0)
}
///Bit 4 - Power Voltage Detector Enable
#[inline(always)]
pub fn pvde(&self) -> PVDE_R {
PVDE_R::new(((self.bits >> 4) & 1) != 0)
}
///Bits 5:7 - PVD Level Selection
#[inline(always)]
pub fn pls(&self) -> PLS_R {
PLS_R::new(((self.bits >> 5) & 7) as u8)
}
///Bit 8 - Disable Backup Domain write protection
#[inline(always)]
pub fn dbp(&self) -> DBP_R {
DBP_R::new(((self.bits >> 8) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CR")
.field("lpds", &self.lpds())
.field("pdds", &self.pdds())
.field("cwuf", &self.cwuf())
.field("csbf", &self.csbf())
.field("pvde", &self.pvde())
.field("pls", &self.pls())
.field("dbp", &self.dbp())
.finish()
}
}
impl W {
///Bit 0 - Low Power Deep Sleep
#[inline(always)]
#[must_use]
pub fn lpds(&mut self) -> LPDS_W<CRrs> {
LPDS_W::new(self, 0)
}
///Bit 1 - Power Down Deep Sleep
#[inline(always)]
#[must_use]
pub fn pdds(&mut self) -> PDDS_W<CRrs> {
PDDS_W::new(self, 1)
}
///Bit 2 - Clear Wake-up Flag
#[inline(always)]
#[must_use]
pub fn cwuf(&mut self) -> CWUF_W<CRrs> {
CWUF_W::new(self, 2)
}
///Bit 3 - Clear STANDBY Flag
#[inline(always)]
#[must_use]
pub fn csbf(&mut self) -> CSBF_W<CRrs> {
CSBF_W::new(self, 3)
}
///Bit 4 - Power Voltage Detector Enable
#[inline(always)]
#[must_use]
pub fn pvde(&mut self) -> PVDE_W<CRrs> {
PVDE_W::new(self, 4)
}
///Bits 5:7 - PVD Level Selection
#[inline(always)]
#[must_use]
pub fn pls(&mut self) -> PLS_W<CRrs> {
PLS_W::new(self, 5)
}
///Bit 8 - Disable Backup Domain write protection
#[inline(always)]
#[must_use]
pub fn dbp(&mut self) -> DBP_W<CRrs> {
DBP_W::new(self, 8)
}
}
/**Power control register (PWR_CR)
You can [`read`](crate::Reg::read) this register and get [`cr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`cr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).
See register [structure](https://stm32-rs.github.io/stm32-rs/STM32F101.html#PWR:CR)*/
pub struct CRrs;
impl crate::RegisterSpec for CRrs {
type Ux = u32;
}
///`read()` method returns [`cr::R`](R) reader structure
impl crate::Readable for CRrs {}
///`write(|w| ..)` method takes [`cr::W`](W) writer structure
impl crate::Writable for CRrs {
type Safety = crate::Unsafe;
const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
}
///`reset()` method sets CR to value 0
impl crate::Resettable for CRrs {
const RESET_VALUE: u32 = 0;
}