From d05f1de3b16ca9ac03f8955e86dce6610987868f Mon Sep 17 00:00:00 2001 From: Olaf Rempel Date: Sun, 22 Jun 2008 21:22:03 +0200 Subject: [PATCH] fix ADC ref, cleanup, brake added --- blmc.c | 72 +++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 44 insertions(+), 28 deletions(-) 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<