diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/pico1541.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/pico1541.c b/src/pico1541.c index 8a02587..9864c89 100644 --- a/src/pico1541.c +++ b/src/pico1541.c @@ -1,8 +1,10 @@ +#include <hardware/regs/intctrl.h> #include <stdint.h> #include <hardware/clocks.h> #include <hardware/flash.h> #include <hardware/gpio.h> +#include <hardware/irq.h> #include <hardware/timer.h> #include <pico/multicore.h> @@ -272,15 +274,18 @@ DRESULT disk_ioctl(BYTE pdrv, BYTE cmd, void *buff) { return RES_PARERR; } +void drive_irq() { + drive_cycle(&drive); +} + void drive_thread() { drive_init(&drive); drive.image = disk; + + irq_set_exclusive_handler(SIO_IRQ_PROC1, drive_irq); + irq_set_enabled(SIO_IRQ_PROC1, true); multicore_fifo_push_blocking(1); - - while (multicore_fifo_pop_blocking_inline()) { - drive_cycle(&drive); - } } int main() { |