Spannung über ADC des C167 messen

OP #2767123
Lesenswert?
• ▲
▼
Hallo,

ich möchte eine Temperaturmessung über den C167 auswerten. Aus meinem 
Temperatursensor kommt ein Strom (273 µA bei 0°C und dann konstant 
steigend 1µA / °C), den ich über einen Widerstand in eine Spannung 
zwischen 0 und 4 V wandel. Die Spannung schließe ich an den Port 5.4 des 
C167 an. Im Programm soll dann aus der Spannung wieder die Temperatur 
berechnet werden und an einer 7-Segment-Anzeige, die an Port 1 
angeschlossen ist, angezeigt werden.
Die Referenzspannung ist 5 V, der Widerstand 11,3 kOhm. (4 V sollen ca. 
bei 80 °C abfallen)

Im Moment schaut das Programm so aus:
1
void Ports_Init(void)
2
{
3
  DP1L = DP1H = 0xFF; //Port1 as output
4
  P1L = 0x00;
5
  P1H = 0x00;
6
}
7

8
void ADC_Init(void)
9
{
10
  ADCON = 0x0014;   //Fixed Channel (P5.4), Continuous Conversion
11
  ADDAT = 0x0000;   //Start value
12
  P5DIDIS = 0xffff; //Digital Input disable
13
  ADST = 1;
14
}
15

16
 void main(void) 
17
{
18
  float temperatur;
19
  int iwert;
20
  float strom;
21
  float u_ein;
22
  Project_Init();
23

24
  
25
  while (TRUE)
26
  {
27
    while (ADBSY);
28
    iwert = (ADDAT & 0x03FF);
29
    u_ein = iwert*(5.0/1023.0);
30
    strom = u_ein / 11300.0;
31
    temperatur = strom - 273;
32
    P1L = temperatur;

An der 7-Segment-Anzeige wird aber nur 00 angezeigt.. Der ADC müsste 
funktionieren, da ich "iwert" auch für eine PWM benutze, die auch 
funktioniert...

Wär lieb wenn mir hier jemand weiterhelfen könnte. Danke!
OP #2767742
Lesenswert?
• ▲
▼
Danke für die Antworten !

Ja das mit den Werten einsetzen habe ich dann auch gemacht und den 
Fehler gleich gefunden... jetzt funktionierts!

Die float-Werte nehme ich, da die Spannungen immer 3,8.... betragen, 
also von den hinteren kommastellen abhängen (bzw. der strom in µA ... ). 
bei int-werten würde er ja immer die selbe temperatur anzeigen
Gast #2767759
Lesenswert?
• ▲
▼
Noch ein kleiner Nachtrag

Programm mit Debugger durchsteppen, dann siehst Du sehr schoen an 
welcher Stelle es hakt, bzw. das Programmverhalten sich von Deinem 
gedachten Verhalten unterscheidet.

Leider kommt "diese Art des Testens" in den meisten Vorlesungen,... zu 
kurz.

Viele Gruesse
Winfried

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.