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
#[doc = "Reader of register CCER"]
pub type R = crate::R<u32, super::CCER>;
#[doc = "Reader of field `ExtendedExternalInputSelectors`"]
pub type EXTENDEDEXTERNALINPUTSELECTORS_R = crate::R<u8, u8>;
#[doc = "Reader of field `ExtendedExternalInputBus`"]
pub type EXTENDEDEXTERNALINPUTBUS_R = crate::R<u8, u8>;
#[doc = "Reader of field `ReadableRegisters`"]
pub type READABLEREGISTERS_R = crate::R<bool, bool>;
#[doc = "Reader of field `DataAddressComparisons`"]
pub type DATAADDRESSCOMPARISONS_R = crate::R<bool, bool>;
#[doc = "Reader of field `InstrumentationResources`"]
pub type INSTRUMENTATIONRESOURCES_R = crate::R<u8, u8>;
#[doc = "Reader of field `EmbeddedICEwatchpointInputs`"]
pub type EMBEDDEDICEWATCHPOINTINPUTS_R = crate::R<u8, u8>;
#[doc = "Reader of field `TraceStartStopBlockUsesEmbeddedICEwatchpointInputs`"]
pub type TRACESTARTSTOPBLOCKUSESEMBEDDEDICEWATCHPOINTINPUTS_R = crate::R<bool, bool>;
#[doc = "Reader of field `EmbeddedICEbehaviorControlImplemented`"]
pub type EMBEDDEDICEBEHAVIORCONTROLIMPLEMENTED_R = crate::R<bool, bool>;
#[doc = "Reader of field `TimestampingImplemented`"]
pub type TIMESTAMPINGIMPLEMENTED_R = crate::R<bool, bool>;
#[doc = "Reader of field `ReducedFunctionCounter`"]
pub type REDUCEDFUNCTIONCOUNTER_R = crate::R<bool, bool>;
#[doc = "Reader of field `TimestampEncoding`"]
pub type TIMESTAMPENCODING_R = crate::R<bool, bool>;
#[doc = "Reader of field `TimestampSize`"]
pub type TIMESTAMPSIZE_R = crate::R<bool, bool>;
impl R {
    #[doc = "Bits 0:2 - Extended external input selectors. The value of these bits is 0, indicating that extended external input selectors are not implemented."]
    #[inline(always)]
    pub fn extended_external_input_selectors(&self) -> EXTENDEDEXTERNALINPUTSELECTORS_R {
        EXTENDEDEXTERNALINPUTSELECTORS_R::new((self.bits & 0x07) as u8)
    }
    #[doc = "Bits 3:10 - Extended external input bus. The value of these bits is 0, indicating that the extended external input bus is not implemented."]
    #[inline(always)]
    pub fn extended_external_input_bus(&self) -> EXTENDEDEXTERNALINPUTBUS_R {
        EXTENDEDEXTERNALINPUTBUS_R::new(((self.bits >> 3) & 0xff) as u8)
    }
    #[doc = "Bit 11 - Readable registers. The value of this bit is 1, indicating that all registers are readable."]
    #[inline(always)]
    pub fn readable_registers(&self) -> READABLEREGISTERS_R {
        READABLEREGISTERS_R::new(((self.bits >> 11) & 0x01) != 0)
    }
    #[doc = "Bit 12 - Data address comparisons. The value of this bit is 1, indicating that data address comparisons are not supported."]
    #[inline(always)]
    pub fn data_address_comparisons(&self) -> DATAADDRESSCOMPARISONS_R {
        DATAADDRESSCOMPARISONS_R::new(((self.bits >> 12) & 0x01) != 0)
    }
    #[doc = "Bits 13:15 - Instrumentation resources. The value of these bits is 0b000, indicating that no Instrumentation resources are supported."]
    #[inline(always)]
    pub fn instrumentation_resources(&self) -> INSTRUMENTATIONRESOURCES_R {
        INSTRUMENTATIONRESOURCES_R::new(((self.bits >> 13) & 0x07) as u8)
    }
    #[doc = "Bits 16:19 - EmbeddedICE watchpoint inputs. The value of these bits is 0b0100, indicating that the number of EmbeddedICE watchpoint inputs implemented is four. These inputs come from the DWT."]
    #[inline(always)]
    pub fn embedded_icewatchpoint_inputs(&self) -> EMBEDDEDICEWATCHPOINTINPUTS_R {
        EMBEDDEDICEWATCHPOINTINPUTS_R::new(((self.bits >> 16) & 0x0f) as u8)
    }
    #[doc = "Bit 20 - Trace Start/Stop block uses EmbeddedICE watchpoint inputs. The value of this bit is 1, indicating that the Trace Start/Stop block uses the EmbeddedICE watchpoint inputs."]
    #[inline(always)]
    pub fn trace_start_stop_block_uses_embedded_icewatchpoint_inputs(
        &self,
    ) -> TRACESTARTSTOPBLOCKUSESEMBEDDEDICEWATCHPOINTINPUTS_R {
        TRACESTARTSTOPBLOCKUSESEMBEDDEDICEWATCHPOINTINPUTS_R::new(((self.bits >> 20) & 0x01) != 0)
    }
    #[doc = "Bit 21 - EmbeddedICE behavior control implemented. The value of this bit is 0, indicating that the ETMEIBCR is not implemented."]
    #[inline(always)]
    pub fn embedded_icebehavior_control_implemented(
        &self,
    ) -> EMBEDDEDICEBEHAVIORCONTROLIMPLEMENTED_R {
        EMBEDDEDICEBEHAVIORCONTROLIMPLEMENTED_R::new(((self.bits >> 21) & 0x01) != 0)
    }
    #[doc = "Bit 22 - Timestamping implemented. This bit is set to 1, indicating that timestamping is implemented."]
    #[inline(always)]
    pub fn timestamping_implemented(&self) -> TIMESTAMPINGIMPLEMENTED_R {
        TIMESTAMPINGIMPLEMENTED_R::new(((self.bits >> 22) & 0x01) != 0)
    }
    #[doc = "Bit 27 - Reduced function counter. Set to 1 to indicate that Counter 1 is a reduced function counter."]
    #[inline(always)]
    pub fn reduced_function_counter(&self) -> REDUCEDFUNCTIONCOUNTER_R {
        REDUCEDFUNCTIONCOUNTER_R::new(((self.bits >> 27) & 0x01) != 0)
    }
    #[doc = "Bit 28 - Timestamp encoding. Set to 1 to indicate that the timestamp is encoded as a natural binary number."]
    #[inline(always)]
    pub fn timestamp_encoding(&self) -> TIMESTAMPENCODING_R {
        TIMESTAMPENCODING_R::new(((self.bits >> 28) & 0x01) != 0)
    }
    #[doc = "Bit 29 - Timestamp size. Set to 0 to indicate a size of 48 bits."]
    #[inline(always)]
    pub fn timestamp_size(&self) -> TIMESTAMPSIZE_R {
        TIMESTAMPSIZE_R::new(((self.bits >> 29) & 0x01) != 0)
    }
}