#![allow(non_snake_case, non_upper_case_globals)]
#![allow(non_camel_case_types)]
use crate::{RORegister, RWRegister};
#[cfg(not(feature = "nosync"))]
use core::marker::PhantomData;
pub mod SR {
pub mod STRT {
pub const offset: u32 = 4;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotStarted: u32 = 0b0;
pub const Started: u32 = 0b1;
}
pub mod W {
pub const Clear: u32 = 0b0;
}
pub mod RW {}
}
pub mod JSTRT {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotStarted: u32 = 0b0;
pub const Started: u32 = 0b1;
}
pub mod W {
pub const Clear: u32 = 0b0;
}
pub mod RW {}
}
pub mod JEOC {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NotComplete: u32 = 0b0;
pub const Complete: u32 = 0b1;
}
pub mod W {
pub const Clear: u32 = 0b0;
}
pub mod RW {}
}
pub mod EOC {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub use super::JEOC::R;
pub mod W {
pub const Clear: u32 = 0b0;
}
pub mod RW {}
}
pub mod AWD {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const NoEvent: u32 = 0b0;
pub const Event: u32 = 0b1;
}
pub mod W {
pub const Clear: u32 = 0b0;
}
pub mod RW {}
}
}
pub mod CR1 {
pub mod AWDEN {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod JAWDEN {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod DISCNUM {
pub const offset: u32 = 13;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JDISCEN {
pub const offset: u32 = 12;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod DISCEN {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod JAUTO {
pub const offset: u32 = 10;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod AWDSGL {
pub const offset: u32 = 9;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const All: u32 = 0b0;
pub const Single: u32 = 0b1;
}
}
pub mod SCAN {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod JEOCIE {
pub const offset: u32 = 7;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod AWDIE {
pub const offset: u32 = 6;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod EOCIE {
pub const offset: u32 = 5;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod AWDCH {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod CR2 {
pub mod TSVREFE {
pub const offset: u32 = 23;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod SWSTART {
pub const offset: u32 = 22;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Started: u32 = 0b0;
pub const NotStarted: u32 = 0b1;
}
pub mod W {
pub const Start: u32 = 0b1;
}
pub mod RW {}
}
pub mod JSWSTART {
pub const offset: u32 = 21;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Started: u32 = 0b0;
pub const NotStarted: u32 = 0b1;
}
pub mod W {
pub const Start: u32 = 0b1;
}
pub mod RW {}
}
pub mod EXTTRIG {
pub const offset: u32 = 20;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod EXTSEL {
pub const offset: u32 = 17;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Tim3Cc1: u32 = 0b000;
pub const Tim2Cc3: u32 = 0b001;
pub const Tim1Cc3: u32 = 0b010;
pub const Tim8Cc1: u32 = 0b011;
pub const Tim8Trgo: u32 = 0b100;
pub const Tim5Cc1: u32 = 0b101;
pub const Tim5Cc3: u32 = 0b110;
pub const Swstart: u32 = 0b111;
}
}
pub mod JEXTTRIG {
pub const offset: u32 = 15;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub use super::EXTTRIG::RW;
}
pub mod JEXTSEL {
pub const offset: u32 = 12;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Tim1Trgo: u32 = 0b000;
pub const Tim1Cc4: u32 = 0b001;
pub const Tim4Cc3: u32 = 0b010;
pub const Tim8Cc2: u32 = 0b011;
pub const Tim8Cc4: u32 = 0b100;
pub const Tim5Trgo: u32 = 0b101;
pub const Tim5Cc4: u32 = 0b110;
pub const Jswstart: u32 = 0b111;
}
}
pub mod ALIGN {
pub const offset: u32 = 11;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Right: u32 = 0b0;
pub const Left: u32 = 0b1;
}
}
pub mod DMA {
pub const offset: u32 = 8;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
pub mod RSTCAL {
pub const offset: u32 = 3;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Initialized: u32 = 0b0;
pub const NotInitialized: u32 = 0b1;
}
pub mod W {
pub const Initialize: u32 = 0b1;
}
pub mod RW {}
}
pub mod CAL {
pub const offset: u32 = 2;
pub const mask: u32 = 1 << offset;
pub mod R {
pub const Complete: u32 = 0b0;
pub const NotComplete: u32 = 0b1;
}
pub mod W {
pub const Start: u32 = 0b1;
}
pub mod RW {}
}
pub mod CONT {
pub const offset: u32 = 1;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Single: u32 = 0b0;
pub const Continuous: u32 = 0b1;
}
}
pub mod ADON {
pub const offset: u32 = 0;
pub const mask: u32 = 1 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Disabled: u32 = 0b0;
pub const Enabled: u32 = 0b1;
}
}
}
pub mod SMPR1 {
pub mod SMP10 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Cycles1_5: u32 = 0b000;
pub const Cycles7_5: u32 = 0b001;
pub const Cycles13_5: u32 = 0b010;
pub const Cycles28_5: u32 = 0b011;
pub const Cycles41_5: u32 = 0b100;
pub const Cycles55_5: u32 = 0b101;
pub const Cycles71_5: u32 = 0b110;
pub const Cycles239_5: u32 = 0b111;
}
}
pub mod SMP11 {
pub const offset: u32 = 3;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP12 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP13 {
pub const offset: u32 = 9;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP14 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP15 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP16 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
pub mod SMP17 {
pub const offset: u32 = 21;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP10::RW;
}
}
pub mod SMPR2 {
pub mod SMP0 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {
pub const Cycles1_5: u32 = 0b000;
pub const Cycles7_5: u32 = 0b001;
pub const Cycles13_5: u32 = 0b010;
pub const Cycles28_5: u32 = 0b011;
pub const Cycles41_5: u32 = 0b100;
pub const Cycles55_5: u32 = 0b101;
pub const Cycles71_5: u32 = 0b110;
pub const Cycles239_5: u32 = 0b111;
}
}
pub mod SMP1 {
pub const offset: u32 = 3;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP2 {
pub const offset: u32 = 6;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP3 {
pub const offset: u32 = 9;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP4 {
pub const offset: u32 = 12;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP5 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP6 {
pub const offset: u32 = 18;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP7 {
pub const offset: u32 = 21;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP8 {
pub const offset: u32 = 24;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
pub mod SMP9 {
pub const offset: u32 = 27;
pub const mask: u32 = 0b111 << offset;
pub mod R {}
pub mod W {}
pub use super::SMP0::RW;
}
}
pub mod JOFR1 {
pub mod JOFFSET {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod JOFR2 {
pub use super::JOFR1::JOFFSET;
}
pub mod JOFR3 {
pub use super::JOFR1::JOFFSET;
}
pub mod JOFR4 {
pub use super::JOFR1::JOFFSET;
}
pub mod HTR {
pub mod HT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod LTR {
pub mod LT {
pub const offset: u32 = 0;
pub const mask: u32 = 0xfff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SQR1 {
pub mod L {
pub const offset: u32 = 20;
pub const mask: u32 = 0b1111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ16 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ15 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ14 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ13 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SQR2 {
pub mod SQ12 {
pub const offset: u32 = 25;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ11 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ10 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ9 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ8 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ7 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod SQR3 {
pub mod SQ6 {
pub const offset: u32 = 25;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ5 {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ4 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ3 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ2 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod SQ1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod JSQR {
pub mod JL {
pub const offset: u32 = 20;
pub const mask: u32 = 0b11 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JSQ4 {
pub const offset: u32 = 15;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JSQ3 {
pub const offset: u32 = 10;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JSQ2 {
pub const offset: u32 = 5;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
pub mod JSQ1 {
pub const offset: u32 = 0;
pub const mask: u32 = 0b11111 << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod JDR1 {
pub mod JDATA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
pub mod JDR2 {
pub use super::JDR1::JDATA;
}
pub mod JDR3 {
pub use super::JDR1::JDATA;
}
pub mod JDR4 {
pub use super::JDR1::JDATA;
}
pub mod DR {
pub mod DATA {
pub const offset: u32 = 0;
pub const mask: u32 = 0xffff << offset;
pub mod R {}
pub mod W {}
pub mod RW {}
}
}
#[repr(C)]
pub struct RegisterBlock {
pub SR: RWRegister<u32>,
pub CR1: RWRegister<u32>,
pub CR2: RWRegister<u32>,
pub SMPR1: RWRegister<u32>,
pub SMPR2: RWRegister<u32>,
pub JOFR1: RWRegister<u32>,
pub JOFR2: RWRegister<u32>,
pub JOFR3: RWRegister<u32>,
pub JOFR4: RWRegister<u32>,
pub HTR: RWRegister<u32>,
pub LTR: RWRegister<u32>,
pub SQR1: RWRegister<u32>,
pub SQR2: RWRegister<u32>,
pub SQR3: RWRegister<u32>,
pub JSQR: RWRegister<u32>,
pub JDR1: RORegister<u32>,
pub JDR2: RORegister<u32>,
pub JDR3: RORegister<u32>,
pub JDR4: RORegister<u32>,
pub DR: RORegister<u32>,
}
pub struct ResetValues {
pub SR: u32,
pub CR1: u32,
pub CR2: u32,
pub SMPR1: u32,
pub SMPR2: u32,
pub JOFR1: u32,
pub JOFR2: u32,
pub JOFR3: u32,
pub JOFR4: u32,
pub HTR: u32,
pub LTR: u32,
pub SQR1: u32,
pub SQR2: u32,
pub SQR3: u32,
pub JSQR: u32,
pub JDR1: u32,
pub JDR2: u32,
pub JDR3: u32,
pub JDR4: u32,
pub DR: u32,
}
#[cfg(not(feature = "nosync"))]
pub struct Instance {
pub(crate) addr: u32,
pub(crate) _marker: PhantomData<*const RegisterBlock>,
}
#[cfg(not(feature = "nosync"))]
impl ::core::ops::Deref for Instance {
type Target = RegisterBlock;
#[inline(always)]
fn deref(&self) -> &RegisterBlock {
unsafe { &*(self.addr as *const _) }
}
}
#[cfg(feature = "rtic")]
unsafe impl Send for Instance {}
pub mod ADC3 {
use super::ResetValues;
#[cfg(not(feature = "nosync"))]
use super::Instance;
#[cfg(not(feature = "nosync"))]
const INSTANCE: Instance = Instance {
addr: 0x40013c00,
_marker: ::core::marker::PhantomData,
};
pub const reset: ResetValues = ResetValues {
SR: 0x00000000,
CR1: 0x00000000,
CR2: 0x00000000,
SMPR1: 0x00000000,
SMPR2: 0x00000000,
JOFR1: 0x00000000,
JOFR2: 0x00000000,
JOFR3: 0x00000000,
JOFR4: 0x00000000,
HTR: 0x00000FFF,
LTR: 0x00000000,
SQR1: 0x00000000,
SQR2: 0x00000000,
SQR3: 0x00000000,
JSQR: 0x00000000,
JDR1: 0x00000000,
JDR2: 0x00000000,
JDR3: 0x00000000,
JDR4: 0x00000000,
DR: 0x00000000,
};
#[cfg(not(feature = "nosync"))]
#[allow(renamed_and_removed_lints)]
#[allow(private_no_mangle_statics)]
#[no_mangle]
static mut ADC3_TAKEN: bool = false;
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn take() -> Option<Instance> {
external_cortex_m::interrupt::free(|_| unsafe {
if ADC3_TAKEN {
None
} else {
ADC3_TAKEN = true;
Some(INSTANCE)
}
})
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub fn release(inst: Instance) {
external_cortex_m::interrupt::free(|_| unsafe {
if ADC3_TAKEN && inst.addr == INSTANCE.addr {
ADC3_TAKEN = false;
} else {
panic!("Released a peripheral which was not taken");
}
});
}
#[cfg(not(feature = "nosync"))]
#[inline]
pub unsafe fn steal() -> Instance {
ADC3_TAKEN = true;
INSTANCE
}
}
pub const ADC3: *const RegisterBlock = 0x40013c00 as *const _;