Code Verständisfrage

OP #3627101
Lesenswert?
• ▲
▼
Hallo.

Ich habe hier einen Programmcode gefunden der dazu dient den internen 
Temperatursensor eines MSP430 abzufragen. Jetzt würde es mich 
interessieren wie ich diesen Code auch für einen externen Sensor 
anwenden kann..
1
#include<msp430g2231.h>
2
void tempInit()
3
{
4
    ADC10CTL0=SREF_1 + REFON + ADC10ON + ADC10SHT_3 ; //1.5V ref,Ref on,64 clocks for sample
5
    ADC10CTL1=INCH_10+ ADC10DIV_3; //temp sensor is at 10 and clock/4
6
}
7
int tempOut()
8
{
9
    int t=0;
10
    __delay_cycles(1000);              //wait 4 ref to settle
11
    ADC10CTL0 |= ENC + ADC10SC;      //enable conversion and start conversion
12
    while(ADC10CTL1 & BUSY);         //wait..i am converting..pum..pum..
13
    t=ADC10MEM;                       //store val in t
14
    ADC10CTL0&=~ENC;                     //disable adc conv
15
    return(int) ((t * 27069L - 18169625L) >> 16); //convert and pass
16
}
17
void main(void)
18
{   volatile int temp;    //initialise
19
    WDTCTL = WDTPW + WDTHOLD; //stop..bow..boww
20
    temp=0;
21
    tempInit();//initialise adc
22
    while(1)
23
    {
24
        __delay_cycles(500); //wait and set break point
25
        temp=tempOut();           //read temp
26
        __delay_cycles(500);  //wait and set breakpoint
27
 
28
    }
29
}

Vielen Dank für Hilfe.
Gast #3627122
Lesenswert?
• ▲
▼
Ich würde Dir empfehlen einen externen Temperatursensor mit einem 
Spannungsteiler an einen ADC zu schalten. Durch die abfallende Spannung 
an Deinem Temperatursensor kannst Du dann auf seinen Wiederstand und 
somit auf die Temperatur zurück rechnen :)

Letzteres erfolgt dann in Software :) Ich würde Dir empfehlen den Code 
neu zu schreiben, da dieser Code fast nichts mit der Umsetzung eines 
Externen Temperatursensors zu tun hat.

Mit freundlichen Grüßen
Christian :)
Gast #3627194
Lesenswert?
• ▲
▼
steht doch sogar im Kommentar:
    ADC10CTL1=INCH_10+ ADC10DIV_3; //temp sensor is at 10 and clock/4
und in den TI Unterlagen steht, dass der Kanal 10 der interne Sensor 
ist. Du musst also den KAnal wählen, an dessen Pin die Sensorbeschaltung 
hängt.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.