/** * \file * * * \brief Low-level stepper timer module for AVR (inplementation). * * * \author Daniele Basile * */ #ifndef DRV_STEPPER_AVR_H #define DRV_STEPPER_AVR_H #include #include #include #warning TODO:This is an example, you must implement it! /** * IRQ callback function type definition. */ typedef void (*irq_t)(void); /** * Timer contex structure. */ typedef struct TimerCounter { int timer_id; ///< Timer counter ID irq_t isr; ///< IRQ handler stepper_isr_t callback; ///< Interrupt callback pointer struct Stepper *motor; ///< Stepper context structure } TimerCounter; /** * Enable interrupt for timer counter compare event. */ INLINE void stepper_tc_irq_enable(struct TimerCounter *timer) { /* put here code to enable timer irq */ //Only for test remove when implement this function (void)timer; } /** * Disable interrupt for timer counter compare event. */ INLINE void stepper_tc_irq_disable(struct TimerCounter *timer) { /* put here code to disable timer irq */ //Only for test remove when implement this function (void)timer; } /** * Set delay for next interrupt compare event. */ INLINE void stepper_tc_setDelay(struct TimerCounter *timer, stepper_time_t delay) { /* put here code to set the delay for next irq */ //Only for test remove when implement this function (void)timer; (void)delay; } /** * Set delay for next interrupt compare event. */ INLINE void stepper_tc_resetTimer(struct TimerCounter *timer) { /* put here code to reset the timer */ //Only for test remove when implement this function (void)timer; } /** * Programm timer counter to generate a pulse on select TIO output. */ INLINE void FAST_FUNC stepper_tc_doPulse(struct TimerCounter *timer) { /* put here code to generate a pulse */ //Only for test remove when implement this function (void)timer; } /** * Programm timer counter to not generate a pulse on select TIO output. */ INLINE void FAST_FUNC stepper_tc_skipPulse(struct TimerCounter *timer) { /* put here code to skip a pulse */ //Only for test remove when implement this function (void)timer; } void stepper_tc_setup(int index, stepper_isr_t callback, struct Stepper *motor); void stepper_tc_init(void); #endif /*DRV_STEPPER_AVR_H */