sam3x8e-pac 0.1.6-dev

Peripheral Access Crate (PAC) for the Atmel SAM3X8E.
#[doc = "Timer Counter 0"]
#[derive(Copy, Clone, Eq, PartialEq)]
pub struct Tc {
    ptr: *mut u8,
}
unsafe impl Send for Tc {}
unsafe impl Sync for Tc {}
impl Tc {
    #[inline(always)]
    pub const unsafe fn from_ptr(ptr: *mut ()) -> Self {
        Self { ptr: ptr as _ }
    }
    #[inline(always)]
    pub const fn as_ptr(&self) -> *mut () {
        self.ptr as _
    }
    #[doc = "Channel Control Register (channel = 0)"]
    #[inline(always)]
    pub const fn ccr(self, n: usize) -> crate::common::Reg<regs::Ccr, crate::common::W> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x0usize + n * 64usize) as _) }
    }
    #[doc = "Channel Mode Register (channel = 0)"]
    #[inline(always)]
    pub const fn cmr_capture_mode(
        self,
        n: usize,
    ) -> crate::common::Reg<regs::Cmr, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x04usize + n * 64usize) as _) }
    }
    #[doc = "Channel Mode Register (channel = 0)"]
    #[inline(always)]
    pub const fn cmr_wave_mode(
        self,
        n: usize,
    ) -> crate::common::Reg<regs::CmrWaveEq1, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x04usize + n * 64usize) as _) }
    }
    #[doc = "Stepper Motor Mode Register (channel = 0)"]
    #[inline(always)]
    pub const fn smmr(self, n: usize) -> crate::common::Reg<regs::Smmr, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x08usize + n * 64usize) as _) }
    }
    #[doc = "Counter Value (channel = 0)"]
    #[inline(always)]
    pub const fn cv(self, n: usize) -> crate::common::Reg<regs::Cv, crate::common::R> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x10usize + n * 64usize) as _) }
    }
    #[doc = "Register A (channel = 0)"]
    #[inline(always)]
    pub const fn ra(self, n: usize) -> crate::common::Reg<regs::Ra, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x14usize + n * 64usize) as _) }
    }
    #[doc = "Register B (channel = 0)"]
    #[inline(always)]
    pub const fn rb(self, n: usize) -> crate::common::Reg<regs::Rb, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x18usize + n * 64usize) as _) }
    }
    #[doc = "Register C (channel = 0)"]
    #[inline(always)]
    pub const fn rc(self, n: usize) -> crate::common::Reg<regs::Rc, crate::common::RW> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x1cusize + n * 64usize) as _) }
    }
    #[doc = "Status Register (channel = 0)"]
    #[inline(always)]
    pub const fn sr(self, n: usize) -> crate::common::Reg<regs::Sr, crate::common::R> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x20usize + n * 64usize) as _) }
    }
    #[doc = "Interrupt Enable Register (channel = 0)"]
    #[inline(always)]
    pub const fn ier(self, n: usize) -> crate::common::Reg<regs::Ier, crate::common::W> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x24usize + n * 64usize) as _) }
    }
    #[doc = "Interrupt Disable Register (channel = 0)"]
    #[inline(always)]
    pub const fn idr(self, n: usize) -> crate::common::Reg<regs::Idr, crate::common::W> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x28usize + n * 64usize) as _) }
    }
    #[doc = "Interrupt Mask Register (channel = 0)"]
    #[inline(always)]
    pub const fn imr(self, n: usize) -> crate::common::Reg<regs::Imr, crate::common::R> {
        assert!(n < 3usize);
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0x2cusize + n * 64usize) as _) }
    }
    #[doc = "Block Control Register"]
    #[inline(always)]
    pub const fn bcr(self) -> crate::common::Reg<regs::Bcr, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc0usize) as _) }
    }
    #[doc = "Block Mode Register"]
    #[inline(always)]
    pub const fn bmr(self) -> crate::common::Reg<regs::Bmr, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc4usize) as _) }
    }
    #[doc = "QDEC Interrupt Enable Register"]
    #[inline(always)]
    pub const fn qier(self) -> crate::common::Reg<regs::Qier, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xc8usize) as _) }
    }
    #[doc = "QDEC Interrupt Disable Register"]
    #[inline(always)]
    pub const fn qidr(self) -> crate::common::Reg<regs::Qidr, crate::common::W> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xccusize) as _) }
    }
    #[doc = "QDEC Interrupt Mask Register"]
    #[inline(always)]
    pub const fn qimr(self) -> crate::common::Reg<regs::Qimr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xd0usize) as _) }
    }
    #[doc = "QDEC Interrupt Status Register"]
    #[inline(always)]
    pub const fn qisr(self) -> crate::common::Reg<regs::Qisr, crate::common::R> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xd4usize) as _) }
    }
    #[doc = "Fault Mode Register"]
    #[inline(always)]
    pub const fn fmr(self) -> crate::common::Reg<regs::Fmr, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xd8usize) as _) }
    }
    #[doc = "Write Protect Mode Register"]
    #[inline(always)]
    pub const fn wpmr(self) -> crate::common::Reg<regs::Wpmr, crate::common::RW> {
        unsafe { crate::common::Reg::from_ptr(self.ptr.wrapping_add(0xe4usize) as _) }
    }
}
pub mod regs;
pub mod vals;