www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F2274 Temperaturmessung


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich bin benutze einen msp430F2274, und möchte die Temperatur messen, ich 
habe code schon geschrieben und läuft alles soweit in ordnung allerdings 
weiss ich net wo ich den Temperaturswert ablesen kann.
ich wäre sehr dankbar, wenn ich mir jemand helfen kann.
vielen danke
Michael

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä? Hast du denn ein Display oder irgendeine Art von Kommunikation dran? 
Am Chip selber kannst du ja nix ablesen....

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für deine Antwort, ich habe leider kein display, aber In 
IAR gibt ein LCD display anzeiger, deshlab weiss ich nicht ob ich dort 
sehe kann und wie.
ich schicke das programm was ich habe, vielleicht kannst du mir ja 
zeigen wie ich die Temperatur in dieser zeiger sehen kann.


#include "msp430x22x4.h"

long temp;
volatile long IntDegF;
volatile long IntDegC;

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  ADC10CTL1 = INCH_10 + ADC10DIV_3;         // Temp Sensor ADC10CLK/4
  ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;
  TACCR0 = 30;                              // Delay to allow Ref to 
settle
  TACCTL0 |= CCIE;                          // Compare-mode interrupt
  TACTL = TASSEL_2 + MC_1;                  // TACLK = SMCLK, Up mode
  __bis_SR_register(CPUOFF + GIE);          // LPM0, TA0_ISR will force 
exit
  TACCTL0 &= ~CCIE;                         // Disable timer Interrupt

  while(1)
  {
    ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion 
start
    __bis_SR_register(CPUOFF + GIE);        // LPM0 with interrupts 
enabled

    // oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468
    temp = ADC10MEM;
    IntDegF = ((temp - 630) * 761) / 1024;

    // oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
    temp = ADC10MEM;
    IntDegC = ((temp - 673) * 423) / 1024;

    __no_operation();                       // SET BREAKPOINT HERE
  }
}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
  __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 
0(SR)
}

#pragma vector=TIMERA0_VECTOR
__interrupt void TA0_ISR(void)
{
  TACTL = 0;                                // Clear Timer_A control 
registers
  __bic_SR_register_on_exit(CPUOFF);        // Clear CPUOFF bit from 
0(SR)
}

vielen Dank.
Michael

Autor: Jörg S. (joerg-s)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>deshlab weiss ich nicht ob ich dort sehe kann und wie.
Schau dir einfach deine Temperatur Variable an.
Einfach an der vorgesehenen Stelle anhalten
__no_operation();                  // SET BREAKPOINT HERE
Und mittels "View" -> "Locals" deine Variable "IntDegC" anschauen.

Autor: Heinz Döpkemeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int anz; anz=IntDegC&0xff;

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.