diff --git a/src/debug.txt b/src/debug.txt new file mode 100644 index 0000000..1014473 --- /dev/null +++ b/src/debug.txt @@ -0,0 +1,12 @@ +// P1OUT |= BIT1; +// for (uint8_t i = 0; i < 16; i++) { +// P1OUT |= BIT3; +// uint16_t x = newPwm >> i; +// if ((x & 1) == 1) { +// P1OUT |= BIT2; +// } else { +// P1OUT &= ~BIT2; +// } +// P1OUT &= ~BIT3; +// } +// P1OUT &= ~BIT1; diff --git a/src/main.cpp b/src/main.cpp index 5906158..5847c4c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -11,7 +11,6 @@ #include #include "pwm.h" -#include "adc.h" @@ -31,7 +30,6 @@ void init() { int main() { init(); - adcInit(); pwmInit(); __enable_interrupt(); diff --git a/src/params.h b/src/params.h index 7d26602..374ee71 100644 --- a/src/params.h +++ b/src/params.h @@ -2,6 +2,8 @@ #define PARAMS_H_ +const uint32_t ADC_TIME_OUT = 100000; +const uint16_t ADC_MAX = 511; const float Ctrl_P = 10.0; const float Ctrl_I = 5.0; diff --git a/src/pwm.cpp b/src/pwm.cpp index 7e3cdad..172328e 100644 --- a/src/pwm.cpp +++ b/src/pwm.cpp @@ -11,7 +11,6 @@ #include "pwm.h" #include "control.h" #include "params.h" -#include "adc.h" @@ -24,6 +23,10 @@ volatile uint16_t newPwm = 0; void pwmInit() { + ADC10CTL0 = ADC10SHT_0 | ADC10ON | SREF_0 | ADC10IE; + ADC10CTL1 = INCH_7 | ADC10SSEL_3 | ADC10DIV_2; + ADC10AE0 = BIT7; + P1DIR |= BIT6; P1SEL |= BIT6; P1OUT = 0; @@ -37,15 +40,12 @@ void pwmInit() { ISR(TIMER0_A0, TA0_ISR) { - static uint8_t cycleCnt = 0; - cycleCnt++; - - if (cycleCnt >= CYCLE_DELAY) { - cycleCnt = 0; - - - uint16_t adcIn = adcGet(); + ADC10CTL0 |= ENC | ADC10SC; +} +ISR(ADC10, ADC_ISR) { + uint16_t adcIn = ADC10MEM; + adcIn >>= 1; float u_adc = ((float)adcIn) * U_ref / ((float)ADC_MAX); u_curr = u_adc * (R_top + R_bottom) / R_bottom; @@ -53,23 +53,7 @@ ISR(TIMER0_A0, TA0_ISR) { float newPwm_f = ctrl.cycle(u_des, u_curr); newPwm = (uint16_t) newPwm_f; -// P1OUT |= BIT1; -// for (uint8_t i = 0; i < 16; i++) { -// P1OUT |= BIT3; -// uint16_t x = newPwm >> i; -// if ((x & 1) == 1) { -// P1OUT |= BIT2; -// } else { -// P1OUT &= ~BIT2; -// } -// P1OUT &= ~BIT3; -// } -// P1OUT &= ~BIT1; - - - TACCR1 = newPwm; - } } float getDutyCycle() {