From: Eugene Crosser Date: Wed, 13 Dec 2017 15:59:42 +0000 (+0100) Subject: parametrize button interrupts per model X-Git-Url: http://www.average.org/gitweb/?p=sensor-light.git;a=commitdiff_plain;h=7cd84e920809d1e8f15209fa17ab21a81af40435 parametrize button interrupts per model Signed-off-by: Eugene Crosser --- diff --git a/msp430/main.c b/msp430/main.c index dab8542..38f681c 100644 --- a/msp430/main.c +++ b/msp430/main.c @@ -45,15 +45,20 @@ int main(void) P2IES &= ~(BIT4|BIT5); // INT on Lo->Hi edge P2IE |= BIT4|BIT5; // INT enable - // Configure ADC A7 pin - SYSCFG2 |= ADCPCTL7; - // Configure ADC10 + +#ifdef ADCPCTL4 /* Newer model */ + SYSCFG2 |= ADCPCTL4|ADCPCTL5; // disconnect pin 4 and 5 from GPIO ADCCTL0 |= ADCSHT_2 | ADCON; // ADCON, S&H=16 ADC clks ADCCTL1 |= ADCSHP; // ADCCLK = MODOSC; sampling timer ADCCTL2 |= ADCRES; // 10-bit conversion results - ADCMCTL0 |= ADCINCH_7; // A7 ADC input select; Vref=AVCC + ADCMCTL0 |= ADCINCH_4; // A4 ADC input select; Vref=AVCC ADCIE |= ADCIE0; // Enable ADC conv complete interrupt + // channel 5 is unused, reserved for measuring current +#else +# error older mode ADC unimplemented + // channel 5 is unused, reserved for measuring current +#endif // Configure timer A0 for PWM TA0CCR0 = 10000-1; // PWM Period @@ -84,12 +89,14 @@ int main(void) continue; } ADCCTL0 |= ADCENC | ADCSC; // Sampling and conversion start - P1OUT |= BIT1; // Set P1.1 LED on + // ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start + P1OUT |= BIT_GL; // Set green LED on } - // End of light measurement, set new Duty_Cycle and zero increment and tuns off green led + // End of light measurement, + // set new Duty_Cycle and zero increment and turn off green led if (events & 1< 10) { Time_Count = 0; - P1OUT ^= BIT0; + P1OUT ^= BIT_RL; // blink if (Time_Left) Time_Left--; else if (Duty_Cycle > 1) @@ -161,15 +168,11 @@ void __attribute__ ((interrupt(TIMER1_A1_VECTOR))) Timer_A (void) break; // CCR2 not used case TA1IV_TAIFG: irq_events |= 1< 1000) { - // Time_Count = 0; - // __bic_SR_register_on_exit(LPM0_bits); // Clear CPUOFF bit from LPM0 - //} } // ADC interrupt service routine @@ -199,7 +202,7 @@ void __attribute__ ((interrupt(ADC_VECTOR))) ADC_ISR (void) case ADCIV_ADCIFG: ADC_Result = ADCMEM0; irq_events |= 1<