MSP430G2553 Lectura de la temperatura ADC10 con el botón ISR

1

Esta es mi tarea de laboratorio. Cuando presiono el botón, el LED rojo se enciende y apaga. Pero, parece que no puedo leer nada de esto. Además, hay un bucle vacío en el código, pero no sé qué insertar allí para leer la temperatura. Además, este código era una plantilla antes, lo llené todo excepto el bucle while. ¿Qué puedo escribir allí?

#include "msp430g2553.h"
#define RED BIT0
long Sample;
long i=0;

void main(void) {
    WDTCTL = WDTPW + WDTHOLD; // Stop WatchDog Timer

    // Button
    P1DIR &= ~BIT3; // P1.3 (push button) as input, 0 input
    P1OUT |= BIT3;
    P1REN |= BIT3; // Enable P1.3 (push button) resistor
    P1SEL &= ~BIT3; // Select P1.3 (push button), 0 selects
    P1IE |= BIT3; // Port 1 Interrupt Enable P1.3 (Push Button)
    P1IFG &= ~BIT3; // Clear Interrupt Flag P1.3
    P1IES |= BIT3; // P1.3 Lo/Hi edge

    // Led
    P1DIR |= BIT0; // RED LED as output
    P1OUT &= ~BIT0; // LED off

    BCSCTL1 = CALBC1_1MHZ; // Set range
    DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation
    BCSCTL2 |= SELM_0 + DIVM_3; // MCLK = DCO/8 These bits select the MCLK source

    ADC10CTL1 = INCH_10 + ADC10DIV_7; // Temp Sensor ADC10CLK/8
    ADC10CTL0 = SREF_1 + ADC10SHT_2 + REFON + REFOUT + ADC10ON; //+ ADC10IE; //+ ADC10IE-->Int EnablE;
    // Ref voltage/Sample&Hold Time
    // Ref Generator ON/ADC10 ON

    _BIS_SR(LPM0_bits + GIE); // LPM0 General CPU Interrupts Enabled
    while(1) i++; { // Execute some useful computation

    }
    }

#pragma vector=PORT1_VECTOR // ISR for Button ADC10 operation
__interrupt void Port_1 (void) {
    ADC10CTL0 |= ENC + ADC10SC; // ADC sampling and conversion start
    Sample = ADC10MEM; // Read ADC sample
    P1OUT ^= BIT0; // Toggle Red LED state
    P1IFG &= ~BIT3; // P1.3 Interrupt Flag cleared
    _BIC_SR(LPM0_EXIT); // Exit LPM0
    }
    
pregunta SpesifikBrush

0 respuestas

Lea otras preguntas en las etiquetas