Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Problem mit TLC549 Kategorie: Programmierung (von Marc Priggemeyer - 17.07.2006 16:28)
Ich nutze:
C164CI-ControllerBoard, CC2-Application-Board
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.
const CLK   = 13; //P1H.5
const DATA  = 14; //P1H.6
const CS    = 15; //P1H.7

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
}


Und das Hauptmodul:

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
 }
}


Ich würde mich über jeden Vorschlag freuen...


    Antwort schreiben


Antworten:

Re: Problem mit TLC549 (von Leo - 18.07.2006 11:41)
    Re: Problem mit TLC549 (von Marc - 20.07.2006 10:56)
        Re: Problem mit TLC549 (von André H. - 22.07.2006 16:26)
            Re: Problem mit TLC549 (von Marc Priggemeyer - 25.07.2006 20:48)
                Re: Problem mit TLC549 (von André H. - 31.07.2006 8:59)