Problem mit TLC549 Kategorie: Programmierung (von Marc Priggemeyer - 17.07.2006 16:28) | ||
| ||
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) |