13 #include <hal_samv71/interrupts.h>
14 #include <hal_samv71/interrupt_handler.h>
23 ControllerSAMV71::ControllerSAMV71() {
51 NVIC_DisableIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
54 NVIC_ClearPendingIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
57 NVIC_EnableIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
62 NVIC_DisableIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
65 NVIC_ClearPendingIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
70 NVIC_ClearPendingIRQ((IRQn_Type)(obj->
m_irq_idx - NVIC_USER_IRQ_OFFSET));
void init(satcat5::util::TimeRef *timer=0)
Start the interrupt controller.
static void interrupt_static(satcat5::irq::Handler *obj)
Static interrupt service routine.
Parent object for receiving interrupt-handler callbacks.
const int m_irq_idx
IRQ index for this interrupt handler.
Microchip SAM V71 implementation of the "InterruptController" API.
void irq_pause() override
Prevent preemption from "pause" until "resume".
void irq_unregister(satcat5::irq::Handler *obj) override
Un-register the callback for an interrupt handler.
void irq_start(satcat5::util::TimeRef *timer=0)
Initialize SAMV71 controller and start SatCat5 interrupts.
void irq_resume() override
Disable hardware interrupts.
void irq_acknowledge(satcat5::irq::Handler *obj) override
Post-handler acknowledgement, notification, and cleanup.
void irq_register(satcat5::irq::Handler *obj) override
Re-enable hardware interrupts.
void irq_handler(satcat5::irq::Handler *obj)
IRQ Handler.
Interrupt handler interface for the Microchip SAM V71.
The TimeRef API provides access to a monotonic time-counter.