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