Temperaturmessung MSP430 F149

OP #596358
Lesenswert?

Hallo, ich möchte den msp430 f149 für Temperaturmessungen benutzen. 
Scheint auch schon zu funktionieren, jedoch bin ich nicht ganz dahinter 
gekommen wie man den Wert des ADCs in Celsius umrechnen kann.

Ich benutze folgenden Code für die Messung:

int energ, temp;

    ADC12CTL0 &= ~ENC;     ADC12CTL1 = CSTARTADD_0 + SHS_0 + SHP + 
ADC12DIV_7 + CONSEQ_1 + ADC12SSEL_2;
    ADC12CTL0 = SHT0_15 + SHT1_15 + MSH + REFON + ADC12ON;
    Delay (1000);
    ADC12MCTL0 = 0xB + SREF_1;
    ADC12MCTL1 = 0xA + SREF_1 + EOS;
    ADC12CTL0 |= ENC + ADC12SC;
    while((ADC12IFG & 1) == 0 || (ADC12CTL1 & ADC12BUSY));
    ADC12CTL0 &= ~ENC;
    energ = ADC12MEM0;
    temp = ADC12MEM1;
    ADC12CTL0 &= ~(REFON + ADC12ON);


Bei Raumtemperatur erhalte ich hiermit Werte von ca. 3090.
Wäre für jede Hilfe dankbar.
Gast #596374
Lesenswert?

Die Schaltung wäre recht interessant. Der ADC-Wert sagt Dir nur, welche 
Spannung über dem NTC/PTC oder was Du auch immer verwendest, abfällt. 
Ohne Schaltungsbeschreibung kann man da wenig sagen...
OP #596405
Lesenswert?

Danke für die rasche Antwort! Mit dieser Umwandlung komme ich dann auf 
etwa 41°Celsius. Raumtemperatur liegt in etwa bei 25°. Kann man den Wert 
mit einer Art "Negativen Offset" versehen um die Temperatur anzupassen, 
oder ist die Innentemperatur des MSPs einfach immer etwas höher?
Ist möglicherweise eine etwas dämliche Frage, ich habe jedoch zum ersten 
Mal mit Microcontrollern zu tun. ;-)

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