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
#[doc = "Register `UCSRA` reader"]
pub struct R(crate::R<UCSRA_SPEC>);
impl core::ops::Deref for R {
    type Target = crate::R<UCSRA_SPEC>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl core::convert::From<crate::R<UCSRA_SPEC>> for R {
    fn from(reader: crate::R<UCSRA_SPEC>) -> Self {
        R(reader)
    }
}
#[doc = "Field `MPCM` reader - Multi-processor Communication Mode"]
pub struct MPCM_R(crate::FieldReader<bool, bool>);
impl MPCM_R {
    pub(crate) fn new(bits: bool) -> Self {
        MPCM_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for MPCM_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `U2X` reader - Double the USART transmission speed"]
pub struct U2X_R(crate::FieldReader<bool, bool>);
impl U2X_R {
    pub(crate) fn new(bits: bool) -> Self {
        U2X_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for U2X_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `UPE` reader - Parity Error"]
pub struct UPE_R(crate::FieldReader<bool, bool>);
impl UPE_R {
    pub(crate) fn new(bits: bool) -> Self {
        UPE_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for UPE_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `DOR` reader - Data overRun"]
pub struct DOR_R(crate::FieldReader<bool, bool>);
impl DOR_R {
    pub(crate) fn new(bits: bool) -> Self {
        DOR_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for DOR_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `FE` reader - Framing Error"]
pub struct FE_R(crate::FieldReader<bool, bool>);
impl FE_R {
    pub(crate) fn new(bits: bool) -> Self {
        FE_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for FE_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `UDRE` reader - USART Data Register Empty"]
pub struct UDRE_R(crate::FieldReader<bool, bool>);
impl UDRE_R {
    pub(crate) fn new(bits: bool) -> Self {
        UDRE_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for UDRE_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `TXC` reader - USART Transmitt Complete"]
pub struct TXC_R(crate::FieldReader<bool, bool>);
impl TXC_R {
    pub(crate) fn new(bits: bool) -> Self {
        TXC_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for TXC_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
#[doc = "Field `RXC` reader - USART Receive Complete"]
pub struct RXC_R(crate::FieldReader<bool, bool>);
impl RXC_R {
    pub(crate) fn new(bits: bool) -> Self {
        RXC_R(crate::FieldReader::new(bits))
    }
}
impl core::ops::Deref for RXC_R {
    type Target = crate::FieldReader<bool, bool>;
    #[inline(always)]
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl R {
    #[doc = "Bit 0 - Multi-processor Communication Mode"]
    #[inline(always)]
    pub fn mpcm(&self) -> MPCM_R {
        MPCM_R::new((self.bits & 0x01) != 0)
    }
    #[doc = "Bit 1 - Double the USART transmission speed"]
    #[inline(always)]
    pub fn u2x(&self) -> U2X_R {
        U2X_R::new(((self.bits >> 1) & 0x01) != 0)
    }
    #[doc = "Bit 2 - Parity Error"]
    #[inline(always)]
    pub fn upe(&self) -> UPE_R {
        UPE_R::new(((self.bits >> 2) & 0x01) != 0)
    }
    #[doc = "Bit 3 - Data overRun"]
    #[inline(always)]
    pub fn dor(&self) -> DOR_R {
        DOR_R::new(((self.bits >> 3) & 0x01) != 0)
    }
    #[doc = "Bit 4 - Framing Error"]
    #[inline(always)]
    pub fn fe(&self) -> FE_R {
        FE_R::new(((self.bits >> 4) & 0x01) != 0)
    }
    #[doc = "Bit 5 - USART Data Register Empty"]
    #[inline(always)]
    pub fn udre(&self) -> UDRE_R {
        UDRE_R::new(((self.bits >> 5) & 0x01) != 0)
    }
    #[doc = "Bit 6 - USART Transmitt Complete"]
    #[inline(always)]
    pub fn txc(&self) -> TXC_R {
        TXC_R::new(((self.bits >> 6) & 0x01) != 0)
    }
    #[doc = "Bit 7 - USART Receive Complete"]
    #[inline(always)]
    pub fn rxc(&self) -> RXC_R {
        RXC_R::new(((self.bits >> 7) & 0x01) != 0)
    }
}
#[doc = "USART Control and Status Register A\n\nThis register you can [`read`](crate::generic::Reg::read). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [ucsra](index.html) module"]
pub struct UCSRA_SPEC;
impl crate::RegisterSpec for UCSRA_SPEC {
    type Ux = u8;
}
#[doc = "`read()` method returns [ucsra::R](R) reader structure"]
impl crate::Readable for UCSRA_SPEC {
    type Reader = R;
}
#[doc = "`reset()` method sets UCSRA to value 0"]
impl crate::Resettable for UCSRA_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0
    }
}