feat(interrupt): add interrupt cleaner
This commit is contained in:
parent
8416bd0fa4
commit
18a3368565
|
@ -81,6 +81,34 @@ pub(crate) const DPRAM_SIZE: u16 = 832;
|
|||
pub(crate) const ENDPOINTS_ALLOC_LAYOUT: [u16; MAX_ENDPOINTS] = [64, 256, 64, 64, 64, 64, 64];
|
||||
pub(crate) const ONE_MS_16_MGHZ: u32 = 16000;
|
||||
|
||||
const UDINT_BYTE: u8 = 0x7d;
|
||||
const USBINT_BYTE: u8 = 0x01;
|
||||
const UEINTX_BYTE: u8 = 0xdf;
|
||||
pub(crate) trait InterruptCleaner {
|
||||
fn clear_interrupts(&mut self) -> &mut Self;
|
||||
}
|
||||
|
||||
impl InterruptCleaner for UDINTWriter {
|
||||
#[inline]
|
||||
fn clear_interrupts(&mut self) -> &mut Self {
|
||||
unsafe { self.bits(UDINT_BYTE) }
|
||||
}
|
||||
}
|
||||
|
||||
impl InterruptCleaner for USBINTWriter {
|
||||
#[inline]
|
||||
fn clear_interrupts(&mut self) -> &mut Self {
|
||||
unsafe { self.bits(USBINT_BYTE) }
|
||||
}
|
||||
}
|
||||
|
||||
impl InterruptCleaner for UEINTXWriter {
|
||||
#[inline]
|
||||
fn clear_interrupts(&mut self) -> &mut Self {
|
||||
unsafe { self.bits(UEINTX_BYTE) }
|
||||
}
|
||||
}
|
||||
|
||||
impl<const L: usize> UsbDevice<L> {
|
||||
#[inline]
|
||||
pub(crate) fn get_size(&self, cs: CriticalSection<'_>) -> usize {
|
||||
|
|
Loading…
Reference in New Issue