Hallo,

ich habe momentan folgendes Problem:
Ich habe an P1H die Leitungen für die serielle Datenübertragung zwischen C-Control und TLC549 angeschlossen. Die Übertragung der Werte des A/D-Wandlers scheint soweit auch schonmal zu klappen: Ich stelle am 549 über ein Poti Werte zwischen 0 und 5V ein und bekomme sie über HWCOM am PC im Hyperterminal angezeigt.
Allerdings gehen die Messwerte in regelmäßigen Abständen (ca. alle 5 Sekunden) auf 0V zurück, ohne das ich am Spannungswert etwas verändert hab. Nach ein par weiteren Sekunden erhöht sich der Wert dann wieder auf die vorher eingestellte Spannung.

Hätte vlt. jemand eine Idee, wie dieses Verhalten zu erklären sein könnte?
Ich hab nämlich keine...

Falls es hilft hab ich hier mal meinen Quelltext:

Modul TLC549 zum Initialisieren und Auslesen des A/D-Wandlers.
Code:
const CLK   = 13; //P1H.5 - Busy
const DATA  = 14; //P1H.6 - Acknowledge
const CS    = 15; //P1H.7 - Strobe

function init()
{
 ports.deact(DATA);
 ports.get(DATA);       //Von DATA/P1H.6 wird gelesen
 
 ports.deact(CS);
 ports.set(CS,0b1);       //CS/P1H.7 wird gesetzt
 
 ports.deact(CLK);
 ports.set(CLK,0b0);      //CLK/P1H.5 wird gepulst
}

function read() returns int
{
 int cnt, val;
 cnt = 0; val=0;
 ports.set(CLK,0b0);
 ports.set(CS,0b0);       //CS auf 0 setzten und übertragung initialisieren
 val = -ports.get(DATA);  //MSB auslesen
 for cnt = 1...7          //die restlichen 7 Bit abfragen
 {
  ports.pulse(CLK);       //einen Takt geben
  val = (val shl 1) - ports.get(DATA); //nächtes Bit
 }
 ports.toggle(CLK);       //Clock auf high setzten
 ports.set(CS,0b1);       //ChipSelect zurück auf High-Pegel ziehen
 ports.toggle(CLK);       //dem TLC549 Bescheit geben, für die nächste Wandlung
 return val;              //Wert zurückgeben
}

function delay_17ms()
{
 sleep 17;
}
Und das Hauptmodul:
Code:
thread main{
 string str_val;
 hwcom.init();  //rs232 initialisieren
 hwcom.setspeed(hwcom.SPEED_9600); //Baudrate setzen
 tlc549.init(); //P1H für die Datenübertragung einstellen
 loop{
      str_val = ""; //String zurücksetzen
      str.putfloatf(str_val,0.0196 * (tlc549.read() and 0b11111111),3);
                                   //Wert umrechnen: 0-5V
      hwcom.print("Value:");
      hwcom.print(str_val); hwcom.put(13); //Wert über RS232 ausgeben
      tlc549.delay_17ms();  //17ms warten und von vorn anfangen
 }
}
Wäre über jeglichen Vorschlag erfreut