|
@ -55,6 +55,7 @@ typedef uint32_t hal_timer_t; |
|
|
|
|
|
|
|
|
#define ENABLE_STEPPER_DRIVER_INTERRUPT() HAL_timer_enable_interrupt(STEP_TIMER_NUM) |
|
|
#define ENABLE_STEPPER_DRIVER_INTERRUPT() HAL_timer_enable_interrupt(STEP_TIMER_NUM) |
|
|
#define DISABLE_STEPPER_DRIVER_INTERRUPT() HAL_timer_disable_interrupt(STEP_TIMER_NUM) |
|
|
#define DISABLE_STEPPER_DRIVER_INTERRUPT() HAL_timer_disable_interrupt(STEP_TIMER_NUM) |
|
|
|
|
|
#define STEPPER_ISR_ENABLED() HAL_timer_interrupt_enabled(STEP_TIMER_NUM) |
|
|
|
|
|
|
|
|
#define ENABLE_TEMPERATURE_INTERRUPT() HAL_timer_enable_interrupt(TEMP_TIMER_NUM) |
|
|
#define ENABLE_TEMPERATURE_INTERRUPT() HAL_timer_enable_interrupt(TEMP_TIMER_NUM) |
|
|
#define DISABLE_TEMPERATURE_INTERRUPT() HAL_timer_disable_interrupt(TEMP_TIMER_NUM) |
|
|
#define DISABLE_TEMPERATURE_INTERRUPT() HAL_timer_disable_interrupt(TEMP_TIMER_NUM) |
|
@ -91,32 +92,33 @@ extern const tTimerConfig TimerConfig[]; |
|
|
void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency); |
|
|
void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency); |
|
|
|
|
|
|
|
|
FORCE_INLINE static void HAL_timer_set_count(const uint8_t timer_num, const hal_timer_t count) { |
|
|
FORCE_INLINE static void HAL_timer_set_count(const uint8_t timer_num, const hal_timer_t count) { |
|
|
const tTimerConfig *pConfig = &TimerConfig[timer_num]; |
|
|
const tTimerConfig * const pConfig = &TimerConfig[timer_num]; |
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_RC = count; |
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_RC = count; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
FORCE_INLINE static hal_timer_t HAL_timer_get_count(const uint8_t timer_num) { |
|
|
FORCE_INLINE static hal_timer_t HAL_timer_get_count(const uint8_t timer_num) { |
|
|
const tTimerConfig *pConfig = &TimerConfig[timer_num]; |
|
|
const tTimerConfig * const pConfig = &TimerConfig[timer_num]; |
|
|
return pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_RC; |
|
|
return pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_RC; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
FORCE_INLINE static void HAL_timer_set_current_count(const uint8_t timer_num, const hal_timer_t count) { |
|
|
FORCE_INLINE static void HAL_timer_set_current_count(const uint8_t timer_num, const hal_timer_t count) { |
|
|
const tTimerConfig *pConfig = &TimerConfig[timer_num]; |
|
|
const tTimerConfig * const pConfig = &TimerConfig[timer_num]; |
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_CV = count; |
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_CV = count; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
FORCE_INLINE static hal_timer_t HAL_timer_get_current_count(const uint8_t timer_num) { |
|
|
FORCE_INLINE static hal_timer_t HAL_timer_get_current_count(const uint8_t timer_num) { |
|
|
const tTimerConfig *pConfig = &TimerConfig[timer_num]; |
|
|
const tTimerConfig * const pConfig = &TimerConfig[timer_num]; |
|
|
return pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_CV; |
|
|
return pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_CV; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void HAL_timer_enable_interrupt(const uint8_t timer_num); |
|
|
void HAL_timer_enable_interrupt(const uint8_t timer_num); |
|
|
void HAL_timer_disable_interrupt(const uint8_t timer_num); |
|
|
void HAL_timer_disable_interrupt(const uint8_t timer_num); |
|
|
|
|
|
bool HAL_timer_interrupt_enabled(const uint8_t timer_num); |
|
|
|
|
|
|
|
|
//void HAL_timer_isr_prologue(const uint8_t timer_num);
|
|
|
//void HAL_timer_isr_prologue(const uint8_t timer_num);
|
|
|
|
|
|
|
|
|
FORCE_INLINE static void HAL_timer_isr_prologue(const uint8_t timer_num) { |
|
|
FORCE_INLINE static void HAL_timer_isr_prologue(const uint8_t timer_num) { |
|
|
const tTimerConfig *pConfig = &TimerConfig[timer_num]; |
|
|
const tTimerConfig * const pConfig = &TimerConfig[timer_num]; |
|
|
// Reading the status register clears the interrupt flag
|
|
|
// Reading the status register clears the interrupt flag
|
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_SR; |
|
|
pConfig->pTimerRegs->TC_CHANNEL[pConfig->channel].TC_SR; |
|
|
} |
|
|
} |
|
|