Temperatursensor MCP9700 und messen negativer Temperaturen

OP #3299758
Hallo,

ich messe mit einem ATMEGA88 und einem Temperatursensor MCP9700 die 
Umgebungstemperatur.
Für positive Temperaturen funktioniert das auch ganz gut.
1
while(1)
2
{
3
  ADCSRA |= (1<<ADSC);             // Start ADC-Wandlung
4
  while (ADCSRA &(1<<ADSC));       // Auf Abschluss der Konvertierung warten
5
  y = ADC;                         // 16-bit ADC-Wert in y speichern      
6
  y = y >> 6;                      // Einen 10-bit Wert in y speichern
7
  temperatur = ((y-102)*100)/204;  // Anpassung an die Temperaturkennlinie
8
                                   // y=kx+d
9
  PORTD = temperatur;              // Ausgabe der Temperatur auf PORTD
10
}

Wie mache ich es aber für negative Temperaturen?

Hier sollte eine LED z.B. am Portpin PB0 leuchten und sozusagen als 
negatives Vorzeichen dienen.
Hallo,

deine Berechnung von Temperatur funktioniert auch für negative 
Temperaturen (wenn du für 'temperatur' & 'y' nicht gerade 
unsigned-Datentypen verwendest).
Wenn du den Wert auf ein Port ausgibts, erhälst du das Ergebnis als 
Zweierkomplement. Willst du das Vorzeichen auf ein extra Port ausgeben 
dann mach einfach folgendes.
1
...
2
if (temperatur<0) {
3
 PORTB|=(1<<0);
4
 temperatur = -temperatur;
5
} else {
6
 PORTB&=~(1<<0);
7
}
8
PORTD = temperatur;

Sascha

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.