summaryrefslogtreecommitdiff
path: root/src/can0/ecr.rs
diff options
context:
space:
mode:
authorArne Dußin2021-11-06 11:50:33 +0100
committerArne Dußin2021-11-06 11:50:33 +0100
commit0666a6ba1dbd66cf8b93c113e362ccbcd99152a0 (patch)
treea184284dbd2316f4624f092e4e7521ea8c90855b /src/can0/ecr.rs
downloadsamc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.tar.gz
samc21-0666a6ba1dbd66cf8b93c113e362ccbcd99152a0.zip
Initial commit
Diffstat (limited to 'src/can0/ecr.rs')
-rw-r--r--src/can0/ecr.rs109
1 files changed, 109 insertions, 0 deletions
diff --git a/src/can0/ecr.rs b/src/can0/ecr.rs
new file mode 100644
index 0000000..3a6b85b
--- /dev/null
+++ b/src/can0/ecr.rs
@@ -0,0 +1,109 @@
+#[doc = "Register `ECR` reader"]
+pub struct R(crate::R<ECR_SPEC>);
+impl core::ops::Deref for R {
+ type Target = crate::R<ECR_SPEC>;
+ #[inline(always)]
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+impl From<crate::R<ECR_SPEC>> for R {
+ #[inline(always)]
+ fn from(reader: crate::R<ECR_SPEC>) -> Self {
+ R(reader)
+ }
+}
+#[doc = "Field `TEC` reader - Transmit Error Counter"]
+pub struct TEC_R(crate::FieldReader<u8, u8>);
+impl TEC_R {
+ pub(crate) fn new(bits: u8) -> Self {
+ TEC_R(crate::FieldReader::new(bits))
+ }
+}
+impl core::ops::Deref for TEC_R {
+ type Target = crate::FieldReader<u8, u8>;
+ #[inline(always)]
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+#[doc = "Field `REC` reader - Receive Error Counter"]
+pub struct REC_R(crate::FieldReader<u8, u8>);
+impl REC_R {
+ pub(crate) fn new(bits: u8) -> Self {
+ REC_R(crate::FieldReader::new(bits))
+ }
+}
+impl core::ops::Deref for REC_R {
+ type Target = crate::FieldReader<u8, u8>;
+ #[inline(always)]
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+#[doc = "Field `RP` reader - Receive Error Passive"]
+pub struct RP_R(crate::FieldReader<bool, bool>);
+impl RP_R {
+ pub(crate) fn new(bits: bool) -> Self {
+ RP_R(crate::FieldReader::new(bits))
+ }
+}
+impl core::ops::Deref for RP_R {
+ type Target = crate::FieldReader<bool, bool>;
+ #[inline(always)]
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+#[doc = "Field `CEL` reader - CAN Error Logging"]
+pub struct CEL_R(crate::FieldReader<u8, u8>);
+impl CEL_R {
+ pub(crate) fn new(bits: u8) -> Self {
+ CEL_R(crate::FieldReader::new(bits))
+ }
+}
+impl core::ops::Deref for CEL_R {
+ type Target = crate::FieldReader<u8, u8>;
+ #[inline(always)]
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+impl R {
+ #[doc = "Bits 0:7 - Transmit Error Counter"]
+ #[inline(always)]
+ pub fn tec(&self) -> TEC_R {
+ TEC_R::new((self.bits & 0xff) as u8)
+ }
+ #[doc = "Bits 8:14 - Receive Error Counter"]
+ #[inline(always)]
+ pub fn rec(&self) -> REC_R {
+ REC_R::new(((self.bits >> 8) & 0x7f) as u8)
+ }
+ #[doc = "Bit 15 - Receive Error Passive"]
+ #[inline(always)]
+ pub fn rp(&self) -> RP_R {
+ RP_R::new(((self.bits >> 15) & 0x01) != 0)
+ }
+ #[doc = "Bits 16:23 - CAN Error Logging"]
+ #[inline(always)]
+ pub fn cel(&self) -> CEL_R {
+ CEL_R::new(((self.bits >> 16) & 0xff) as u8)
+ }
+}
+#[doc = "Error Counter\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 [ecr](index.html) module"]
+pub struct ECR_SPEC;
+impl crate::RegisterSpec for ECR_SPEC {
+ type Ux = u32;
+}
+#[doc = "`read()` method returns [ecr::R](R) reader structure"]
+impl crate::Readable for ECR_SPEC {
+ type Reader = R;
+}
+#[doc = "`reset()` method sets ECR to value 0"]
+impl crate::Resettable for ECR_SPEC {
+ #[inline(always)]
+ fn reset_value() -> Self::Ux {
+ 0
+ }
+}