This commit is contained in:
Wolfgang Hottgenroth
2016-10-15 11:59:08 +02:00
3 changed files with 18 additions and 12 deletions

View File

@ -74,9 +74,6 @@ volatile uint8_t activeOffset = 0;
ISR(TIMER0_A0, TA0_ISR_Ovrfl) {
if (pulseWidthIdx == 0) {
}
uint16_t pw = pulseWidths[pulseWidthIdx + activeOffset];
if (pulseWidthIdx != (NUM_OF_SINE_VALUES - 1)) {
TA0CCR1 = pw;
@ -107,13 +104,20 @@ void inverterExec() {
if (! running) {
// start
pulseWidthIdx = 0;
// bridge start polarity
P1OUT &= ~BIT1;
P1OUT |= ((BIT2 & P1IN) >> 1);
// start timer
TA0CTL = MC_1 | ID_0 | TASSEL_0 | TACLR;
running = true;
}
} else {
if (running) {
// stop
// stop timer
TA0CTL = MC_0;
// shutdown bridge
P2OUT &= ~BIT1;
running = false;
}
}
@ -121,14 +125,16 @@ void inverterExec() {
void inverterInit() {
// start, stop
// BIT3: start, BIT4: stop
P1OUT &= (BIT3 | BIT4);
P1DIR &= (BIT3 | BIT4);
P1OUT &= ~BIT3;
P1DIR &= ~BIT3;
// bridge direction
P1OUT &= ~BIT2;
P1OUT |= BIT1;
P1DIR |= BIT1 | BIT2;
// bridge start polarity
P1DIR &= ~BIT2;
// bridge polarity
P1OUT &= ~BIT1;
P1OUT |= ((BIT2 & P1IN) >> 1);
P1DIR |= BIT1;
// bridge enable (PWM)
P2OUT &= ~BIT1;