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
#[doc = "Register `MCUSR` reader"]
pub struct R(crate::R<MCUSR_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<MCUSR_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl From<crate::R<MCUSR_SPEC>> for R {
    #[inline(always)]
    fn from(reader: crate::R<MCUSR_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Register `MCUSR` writer"]
pub struct W(crate::W<MCUSR_SPEC>);
impl core::ops::Deref for W {
    type Target = crate::W<MCUSR_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::ops::DerefMut for W {
    #[inline(always)]
    fn deref_mut(&mut self) -> &mut Self::Target {
        &mut self.0
    }
}
impl From<crate::W<MCUSR_SPEC>> for W {
    #[inline(always)]
    fn from(writer: crate::W<MCUSR_SPEC>) -> Self {
        W(writer)
    }
}
#[doc = "Field `PORF` reader - Power-on reset flag"]
pub type PORF_R = crate::BitReader<bool>;
#[doc = "Field `PORF` writer - Power-on reset flag"]
pub type PORF_W<'a, const O: u8> = crate::BitWriter<'a, u8, MCUSR_SPEC, bool, O>;
#[doc = "Field `EXTRF` reader - External Reset Flag"]
pub type EXTRF_R = crate::BitReader<bool>;
#[doc = "Field `EXTRF` writer - External Reset Flag"]
pub type EXTRF_W<'a, const O: u8> = crate::BitWriter<'a, u8, MCUSR_SPEC, bool, O>;
#[doc = "Field `BORF` reader - Brown-out Reset Flag"]
pub type BORF_R = crate::BitReader<bool>;
#[doc = "Field `BORF` writer - Brown-out Reset Flag"]
pub type BORF_W<'a, const O: u8> = crate::BitWriter<'a, u8, MCUSR_SPEC, bool, O>;
#[doc = "Field `WDRF` reader - Watchdog Reset Flag"]
pub type WDRF_R = crate::BitReader<bool>;
#[doc = "Field `WDRF` writer - Watchdog Reset Flag"]
pub type WDRF_W<'a, const O: u8> = crate::BitWriter<'a, u8, MCUSR_SPEC, bool, O>;
#[doc = "Field `JTRF` reader - JTAG Reset Flag"]
pub type JTRF_R = crate::BitReader<bool>;
#[doc = "Field `JTRF` writer - JTAG Reset Flag"]
pub type JTRF_W<'a, const O: u8> = crate::BitWriter<'a, u8, MCUSR_SPEC, bool, O>;
impl R {
    #[doc = "Bit 0 - Power-on reset flag"]
    #[inline(always)]
    pub fn porf(&self) -> PORF_R {
        PORF_R::new((self.bits & 1) != 0)
    }
    #[doc = "Bit 1 - External Reset Flag"]
    #[inline(always)]
    pub fn extrf(&self) -> EXTRF_R {
        EXTRF_R::new(((self.bits >> 1) & 1) != 0)
    }
    #[doc = "Bit 2 - Brown-out Reset Flag"]
    #[inline(always)]
    pub fn borf(&self) -> BORF_R {
        BORF_R::new(((self.bits >> 2) & 1) != 0)
    }
    #[doc = "Bit 3 - Watchdog Reset Flag"]
    #[inline(always)]
    pub fn wdrf(&self) -> WDRF_R {
        WDRF_R::new(((self.bits >> 3) & 1) != 0)
    }
    #[doc = "Bit 4 - JTAG Reset Flag"]
    #[inline(always)]
    pub fn jtrf(&self) -> JTRF_R {
        JTRF_R::new(((self.bits >> 4) & 1) != 0)
    }
}
impl W {
    #[doc = "Bit 0 - Power-on reset flag"]
    #[inline(always)]
    #[must_use]
    pub fn porf(&mut self) -> PORF_W<0> {
        PORF_W::new(self)
    }
    #[doc = "Bit 1 - External Reset Flag"]
    #[inline(always)]
    #[must_use]
    pub fn extrf(&mut self) -> EXTRF_W<1> {
        EXTRF_W::new(self)
    }
    #[doc = "Bit 2 - Brown-out Reset Flag"]
    #[inline(always)]
    #[must_use]
    pub fn borf(&mut self) -> BORF_W<2> {
        BORF_W::new(self)
    }
    #[doc = "Bit 3 - Watchdog Reset Flag"]
    #[inline(always)]
    #[must_use]
    pub fn wdrf(&mut self) -> WDRF_W<3> {
        WDRF_W::new(self)
    }
    #[doc = "Bit 4 - JTAG Reset Flag"]
    #[inline(always)]
    #[must_use]
    pub fn jtrf(&mut self) -> JTRF_W<4> {
        JTRF_W::new(self)
    }
    #[doc = "Writes raw bits to the register."]
    #[inline(always)]
    pub unsafe fn bits(&mut self, bits: u8) -> &mut Self {
        self.0.bits(bits);
        self
    }
}
#[doc = "MCU Status Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [mcusr](index.html) module"]
pub struct MCUSR_SPEC;
impl crate::RegisterSpec for MCUSR_SPEC {
    type Ux = u8;
}
#[doc = "`read()` method returns [mcusr::R](R) reader structure"]
impl crate::Readable for MCUSR_SPEC {
    type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [mcusr::W](W) writer structure"]
impl crate::Writable for MCUSR_SPEC {
    type Writer = W;
    const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
    const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
}
#[doc = "`reset()` method sets MCUSR to value 0"]
impl crate::Resettable for MCUSR_SPEC {
    const RESET_VALUE: Self::Ux = 0;
}