diff --git a/blmc.c b/blmc.c index 0a3bd82..22aedfc 100644 --- a/blmc.c +++ b/blmc.c @@ -34,11 +34,15 @@ void trigger_adc(uint8_t channel) /* Disable Analog Comperator */ ACSR &= ~(1< 50us conversion time + */ + ADCSRA = (1< disable EN_C, disable PWM_B, enable EN_B */ + PORTD &= ~PHASE_C_EN; TCCR0A &= ~PHASE_B_OC; - TCCR2A = (TCCR2A & ~PHASE_C_OC) | PHASE_A_OC; + PORTD |= PHASE_B_EN; + /* C: falling edge */ ACSR = (1< disable EN_A, enable PWM_C, enable EN_C */ PORTB &= ~PHASE_A_EN; - PORTD |= PHASE_B_EN | PHASE_C_EN; - TCCR0A &= ~PHASE_B_OC; - TCCR2A = (TCCR2A & ~PHASE_A_OC) | PHASE_C_OC; + TCCR2A |= PHASE_C_OC; + PORTD |= PHASE_C_EN; + /* A: rising edge */ ACSR = (1< disable EN_B, disable PWM_A, enable EN_A */ + PORTD &= ~PHASE_B_EN; + TCCR2A &= ~PHASE_A_OC; PORTB |= PHASE_A_EN; - PORTD = (PORTD & ~PHASE_B_EN) | PHASE_C_EN; - TCCR0A &= ~PHASE_B_OC; - TCCR2A = (TCCR2A & ~PHASE_A_OC) | PHASE_C_OC; + /* B: falling edge */ ACSR = (1< disable EN_C, enable PWM_B, enable EN_B */ + PORTD &= ~PHASE_C_EN; TCCR0A |= PHASE_B_OC; - TCCR2A &= ~(PHASE_A_OC | PHASE_C_OC); + PORTD |= PHASE_B_EN; + /* C: rising edge */ ACSR = (1< disable EN_A, disable PWM_C, enable EN_C */ PORTB &= ~PHASE_A_EN; - PORTD = (PORTD & ~PHASE_B_EN) | PHASE_C_EN; - TCCR0A |= PHASE_B_OC; - TCCR2A &= ~(PHASE_A_OC | PHASE_C_OC); + TCCR2A &= ~PHASE_C_OC; + PORTD |= PHASE_C_EN; + /* A: falling edge */ ACSR = (1< disable EN_B, enable PWM_A, enable EN_A */ + PORTD &= ~PHASE_B_EN; + TCCR2A |= PHASE_A_OC; PORTB |= PHASE_A_EN; - PORTD = (PORTD & ~PHASE_B_EN) | PHASE_C_EN; - TCCR0A &= ~PHASE_B_OC; - TCCR2A = (TCCR2A & ~PHASE_C_OC) | PHASE_A_OC; + /* B: rising edge */ ACSR = (1<