diff --git a/src/lib.rs b/src/lib.rs index 64604a0..5296157 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -162,7 +162,7 @@ impl UsbBus for UsbDevice { if usbint.vbusti().bit_is_set() { usb.usbint - .write(|w| unsafe { w.bits(0x01) }.vbusti().clear_bit()); + .write(|w| w.clear_interrupts().vbusti().clear_bit()); if usb.usbsta.read().vbus().bit_is_set() { return PollResult::Resume; } else { @@ -183,8 +183,7 @@ impl UsbBus for UsbDevice { } if udint.sofi().bit_is_set() { - usb.udint - .write(|w| unsafe { w.bits(0x7d) }.sofi().clear_bit()); + usb.udint.write(|w| w.clear_interrupts().sofi().clear_bit()); } if usb.usbcon.read().frzclk().bit_is_clear() { @@ -248,7 +247,7 @@ impl UsbBus for UsbDevice { } usb.ueintx.write(|w| { - unsafe { w.bits(0xdf) } + w.clear_interrupts() .rxouti() .clear_bit() .rxstpi() @@ -261,7 +260,7 @@ impl UsbBus for UsbDevice { return Err(UsbError::WouldBlock); } usb.ueintx - .write(|w| unsafe { w.bits(0xdf) }.rxouti().clear_bit()); + .write(|w| w.clear_interrupts().rxouti().clear_bit()); let mut bytes_read = 0; for slot in buf { @@ -277,7 +276,7 @@ impl UsbBus for UsbDevice { } usb.ueintx - .write(|w| unsafe { w.bits(0xdf) }.fifocon().clear_bit()); + .write(|w| w.clear_interrupts().fifocon().clear_bit()); Ok(bytes_read) } } @@ -297,7 +296,7 @@ impl UsbBus for UsbDevice { // Clear resume informations. // usb.udint.write(|w| { - unsafe { w.bits(0x7d) } + w.clear_interrupts() .wakeupi() .clear_bit() .suspi() @@ -325,7 +324,7 @@ impl UsbBus for UsbDevice { usb.usbcon.modify(|_, w| w.frzclk().clear_bit()); usb.udint.write(|w| { - unsafe { w.bits(0x7d) } + w.clear_interrupts() .wakeupi() .clear_bit() .suspi() @@ -369,7 +368,7 @@ impl UsbBus for UsbDevice { let (usb, pll) = (self.usb.borrow(cs), self.pll.borrow(cs)); usb.udint.write(|w| { - unsafe { w.bits(0x7d) } + w.clear_interrupts() .wakeupi() .clear_bit() .suspi() @@ -416,13 +415,13 @@ impl UsbBus for UsbDevice { } usb.ueintx - .write(|w| unsafe { w.bits(0xdf) }.txini().clear_bit()); + .write(|w| w.clear_interrupts().txini().clear_bit()); } else { if usb.ueintx.read().txini().bit_is_clear() { return Err(UsbError::WouldBlock); } usb.ueintx.write(|w| { - unsafe { w.bits(0xdf) } + w.clear_interrupts() .txini() .clear_bit() .rxouti() @@ -438,7 +437,7 @@ impl UsbBus for UsbDevice { } usb.ueintx.write(|w| { - unsafe { w.bits(0xdf) } + w.clear_interrupts() .rxouti() .clear_bit() .fifocon()