Forum: Mikrocontroller und Digitale Elektronik MSP430F2012 Temperaturmessung mit externem NTC


von m. S. (marek)


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;
    }
  }
}

von m. S. (marek)


Lesenswert?

Marek S. schrieb:
> if (temp < 0x22F){  // T > 30°C // da muß > hin

Da ist erst mal ein fehler hab ich selber ent deckt. Dann habe ich noch 
vergessen P2SEL &= 0x00; einzufügen. Jetzt leuchtet es auch aber zeigt 
an das es wenigher als 20 °C hat was nicht stimmen kann.

mfg

von m. S. (marek)


Lesenswert?

Jo hat sich geklärt hab die Fehler alle selber ausgemertzt die if 
abfrgen waren bischen schlecht geschrieben mit fehlern in > & < 
vertauscht. Aber danke an alle die sich mit beteiligt hätten.

mfg

von S. Z. (szimmi)


Lesenswert?

Wenn Du jetzt noch ein bisschen bei der Rechtschreibung und Grammatik 
zulegst, sind wir ganz stolz auf Dich :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.