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
}