X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fcpu%2Farm%2Fdrv%2Fstepper_at91.c;h=2c2e193d1257604bd84e1eafb9d6f40ee4bbbd18;hb=32d1445272120a254d77ce8d1af1f527da7a2c17;hp=eef7793e1726d77e829fc3fc550d7500bd4daaa4;hpb=99c9bbc62b1b6003eefd78bf1e1b83beae4b9f38;p=bertos.git diff --git a/bertos/cpu/arm/drv/stepper_at91.c b/bertos/cpu/arm/drv/stepper_at91.c index eef7793e..2c2e193d 100644 --- a/bertos/cpu/arm/drv/stepper_at91.c +++ b/bertos/cpu/arm/drv/stepper_at91.c @@ -55,6 +55,7 @@ #include "stepper_at91.h" +#include "cfg/cfg_stepper.h" #include #include @@ -63,7 +64,6 @@ #include -#include "appconfig.h" /* * Delay to set C compare to clear output @@ -74,9 +74,9 @@ /* * Forward declaration for interrupt handler */ -static void stepper_tc0_irq(void); -static void stepper_tc1_irq(void); -static void stepper_tc2_irq(void); +static ISR_PROTO(stepper_tc0_irq); +static ISR_PROTO(stepper_tc1_irq); +static ISR_PROTO(stepper_tc2_irq); ///< Static array of timer counter struct for stepper. static struct TimerCounter stepper_timers[CONFIG_TC_STEPPER_MAX_NUM] = @@ -253,7 +253,7 @@ INLINE void stepper_tc_tio_irq(struct TimerCounter * t) /* * Interrupt handler for timer counter TCKL0 */ -static void ISR_FUNC stepper_tc0_irq(void) +DECLARE_ISR(stepper_tc0_irq) { /* * Warning: when we read the status_reg register, we reset it. @@ -263,16 +263,12 @@ static void ISR_FUNC stepper_tc0_irq(void) */ uint32_t status_reg = TC0_SR & TC0_IMR; - if ((status_reg & BV(TC_CPBS)) && (status_reg & BV(TC_CPAS))) - STEPPER_STROBE_ON; - if (status_reg & BV(TC_CPAS)) stepper_tc_tio_irq(&stepper_timers[TC_TIOA0]); if (status_reg & BV(TC_CPBS)) stepper_tc_tio_irq(&stepper_timers[TC_TIOB0]); - STEPPER_STROBE_OFF; /* Inform hw that we have served the IRQ */ AIC_EOICR = 0; @@ -281,9 +277,8 @@ static void ISR_FUNC stepper_tc0_irq(void) /* * Interrupt handler for timer counter TCKL1 */ -static void ISR_FUNC stepper_tc1_irq(void) +DECLARE_ISR(stepper_tc1_irq) { - STEPPER_STROBE_ON_1; /* * Warning: when we read the status_reg register, we reset it. * That mean if is occur an interrupt event we can read only @@ -301,14 +296,13 @@ static void ISR_FUNC stepper_tc1_irq(void) /* Inform hw that we have served the IRQ */ AIC_EOICR = 0; - STEPPER_STROBE_OFF_1; } /* * Interrupt handler for timer counter TCKL2 */ -static void ISR_FUNC stepper_tc2_irq(void) +DECLARE_ISR(stepper_tc2_irq) { /* @@ -319,14 +313,12 @@ static void ISR_FUNC stepper_tc2_irq(void) */ uint32_t status_reg = TC2_SR & TC2_IMR; - STEPPER_STROBE_ON_2; if (status_reg & BV(TC_CPAS)) stepper_tc_tio_irq(&stepper_timers[TC_TIOA2]); if (status_reg & BV(TC_CPBS)) stepper_tc_tio_irq(&stepper_timers[TC_TIOB2]); - STEPPER_STROBE_OFF_2; /* Inform hw that we have served the IRQ */ AIC_EOICR = 0; @@ -370,7 +362,7 @@ void stepper_tc_setup(int index, stepper_isr_t callback, struct Stepper *motor) *motor->timer->comp_c_reg = 0; //Register interrupt vector - cpuflags_t flags; + cpu_flags_t flags; IRQ_SAVE_DISABLE(flags); /*