Rework fast blinking after reset
This commit is contained in:
parent
eb4921afce
commit
43bec436eb
1 changed files with 19 additions and 28 deletions
23
src/main.rs
23
src/main.rs
|
|
@ -98,19 +98,6 @@ fn main() -> ! {
|
||||||
|
|
||||||
let mut led_pin = pins.gpio12.into_push_pull_output();
|
let mut led_pin = pins.gpio12.into_push_pull_output();
|
||||||
|
|
||||||
let mut start_time: u64 = 0;
|
|
||||||
let mut count: u64 = 0;
|
|
||||||
loop {
|
|
||||||
if timer.get_counter().ticks() - start_time > 25_000 {
|
|
||||||
count += 1;
|
|
||||||
let _ = led_pin.toggle();
|
|
||||||
start_time = timer.get_counter().ticks();
|
|
||||||
if count == 125 {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let usb_bus = UsbBusAllocator::new(hal::usb::UsbBus::new(
|
let usb_bus = UsbBusAllocator::new(hal::usb::UsbBus::new(
|
||||||
pac.USB,
|
pac.USB,
|
||||||
pac.USB_DPRAM,
|
pac.USB_DPRAM,
|
||||||
|
|
@ -131,8 +118,6 @@ fn main() -> ! {
|
||||||
.self_powered(false)
|
.self_powered(false)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
let mut start_time: u64 = 0;
|
|
||||||
|
|
||||||
let mut storage: [u8; (DISK_BLOCK_SIZE * DISK_BLOCK_NUM) as usize] = [0u8; (DISK_BLOCK_SIZE * DISK_BLOCK_NUM) as usize];
|
let mut storage: [u8; (DISK_BLOCK_SIZE * DISK_BLOCK_NUM) as usize] = [0u8; (DISK_BLOCK_SIZE * DISK_BLOCK_NUM) as usize];
|
||||||
|
|
||||||
const LBA: u32 = DISK_BLOCK_NUM - 1;
|
const LBA: u32 = DISK_BLOCK_NUM - 1;
|
||||||
|
|
@ -192,8 +177,13 @@ fn main() -> ! {
|
||||||
|
|
||||||
defmt::info!("entering main loop");
|
defmt::info!("entering main loop");
|
||||||
|
|
||||||
|
let mut start_time: u64 = 0;
|
||||||
loop {
|
loop {
|
||||||
let interval = match (usb_device.state(), led_pin.is_set_high().unwrap_or_else(|_| false)) {
|
let interval = if timer.get_counter().ticks() < 2_000_000 {
|
||||||
|
25_000
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
match (usb_device.state(), led_pin.is_set_high().unwrap_or_else(|_| false)) {
|
||||||
// The USB device has just been created or reset.
|
// The USB device has just been created or reset.
|
||||||
(UsbDeviceState::Default, true) => 100_000,
|
(UsbDeviceState::Default, true) => 100_000,
|
||||||
(UsbDeviceState::Default, false) => 100_000,
|
(UsbDeviceState::Default, false) => 100_000,
|
||||||
|
|
@ -206,6 +196,7 @@ fn main() -> ! {
|
||||||
// The USB device has been suspended by the host or it has been unplugged from the USB bus.
|
// The USB device has been suspended by the host or it has been unplugged from the USB bus.
|
||||||
(UsbDeviceState::Suspend, true) => 10_000,
|
(UsbDeviceState::Suspend, true) => 10_000,
|
||||||
(UsbDeviceState::Suspend, false) => 2_000_000,
|
(UsbDeviceState::Suspend, false) => 2_000_000,
|
||||||
|
}
|
||||||
};
|
};
|
||||||
if timer.get_counter().ticks() - start_time > interval {
|
if timer.get_counter().ticks() - start_time > interval {
|
||||||
let _ = led_pin.toggle();
|
let _ = led_pin.toggle();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue