MSP430F2012 Temperaturmessung mit externem NTC

OP #1751244
Lesenswert?

Hi Leute diesmal baue ich ein Thermometer das die Vorgegebenen Bereiche 
mittels einzelnen Segmenten der 7 Segmentanzeige anzeigt. Ich hab auch 
schon ein Programm fertig. Beim kompilieren werden auch keine Fehler 
angezeigt. Der NTC ist in reihe mit einem 10k Widerstand als 
Spannungsteiler geschaltet. Bei 25 °C solte der NTC einen 
Widerstandswert von 10k haben.
Mein Probelm ist nun folgendes es wird überhaupt nichts angezeigt 
deswegen wolte ich euch mal bitte mal nen Blick auf den code zu werfen 
vielleicht ist da ein Fehler drinne oder in meiner Aufgebauten 
schaltung. Danke schon mal für eure Hilfe.

mfg

#include <msp430x20x2.h>

unsigned int temp;

int main (void){

  WDTCTL = WDTPW + WDTHOLD; //Watchdog aus
  ADC10CTL0 = SREF_1 + REFON + ADC10ON +ADC10SHT_0 + REFOUT + MSC; // 
Initialisierung ADC10 Control Register 0
  ADC10CTL1 = INCH_0 + ADC10SSEL_3 + CONSEQ_0;// Initialisierung ADC10 
Control Register 1

  ADC10CTL0 &= ~REF2_5V; // Vref = 1,5V
  ADC10CTL0 &= ~ENC; //ADC aus

  ADC10AE0 |= 0x11; //analog enable A4 Vref an ausgang p1.4 ??? und A0 = 
P1.0 "Messeingang"

  P1SEL &= 0x1F; //I/O funktion der 3 Ausgänge
  P1DIR |= 0xE0; //P1.5 & P1.6 & P1.7 Ausgänge auf LEDs

  P2DIR |= 0x80; //Transistor "scharf" schalten damit 7 segment anzeige 
an geht

  while (1){
    ADC10CTL0 |= ENC + ADC10SC; // ADC anschalten Umwandlung starten
      temp = ADC10MEM;  // Übergabe des wertes vom ADC an Variable temp

    if (temp < 0x22F){  // T > 30°C
      P1OUT = 0x40;
    }
    if ((temp == 0x22F) && (temp > 0x204)){ // 25,5°C bis 30°C
      P1OUT = 0xC0;
    }
    if ((temp < 0x204) && (temp > 0x1FB)){ // 24,5°C bis 25,5°C
      P1OUT = 0x80;
    }
    if ((temp < 0x1FB) && (temp == 0x1CE)){ // 20°C bis 24,5°C
      P1OUT = 0xA0;
    }
    if (temp < 0x1CE){ // T < 20°C
      P1OUT = 0x20;
    }
  }
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren