Re: Serielle Messwertausgabe Kategorie: Verschiedenes (von Ralf Broeske - 23.08.2005 19:38) | ||
Als Antwort auf Re: Serielle Messwertausgabe von Peter S - 22.08.2005 22:54 | ||
| ||
Hallo Peter, vielen Dank für deine Antwort...ich verzweifle an diesem Ding. Leider ist die begeleitende Einführung der C-Control pro nichts für Anfänger... Ich habe mir aus den Beispielprogrammen was zusammengebastelt, mit dem msg-Befehlen sehe ich auch das Egebnis im Debugfenster. Jetzt mu� allerdings der Messwert 'ADC_Wert' offensichtlich um- gewandelt werden um ihn mit dem 'Serial_Write' Befehl über RS232 ausgeben zu können. Aber mit den vorleigenden Angaben bekomme ich das nicht geregelt. Meine Frage lautet somit wie mu� ich die Umwandlung des ADC Messwertes vornehmen um den String dann ausgeben zu können ? Ich möchte lediglich eine Zahl für den Messwert erhalten dann Zeilenumbruch, neuer Messwert etc... anbei das Programm wie es jetzt ist.. kannst du helfen ?? // ADC_0: Messwertausgabe // Eingang ADC0 PA0 (PortA.0) // erforderliche Library: IntFunc_Lib.cc // Der Me�wert wird über die serielle Schnittstelle ausgegeben // Der ADC hat eine Auflösung von 10 Bit. // Bei einer Referenzspannung von 5V bedeutet dies 4,8828mV/Bit. (5V/1024Bit) // Als Referenzspannung kann Vcc, die interne Referenz(2,56V) // oder eine externe Spannung verwendet werden. // Deklaration der Formatierungsvariablen #define LF 0x0A #define CR 0x0D #define SPACE 0x20 //------------------------------------------------------------------------------ // Auswertung der am verwendeten Eingang anliegenden Spannung unter // Berücksichtigung der angegebenen oberen und unteren Limits. // void ADC_Check_Limit(byte channel,word limit_low, word limit_high) { word ADC_Wert; // In dieser Variablen wird der // gemessene Wert gespeichert. char Ausgabe[6]; // In dieser Variablen wird der Messwert //gespeichert und seriell ausgegeben ADC_Set(ADC_VREF_VCC, channel); // Festlegung der Bezugsgrö�e des Eingangskanals // und Bestimmung des verwendeten Kanals. // In diesem Fall werden alle gemessenen // Werte auf 5V bezogen. ADC_Wert=ADC_Read(); // Einlesen des Wertes des Kanals Msg_WriteChar(CR); // Ausgabe: Wagenrücklauf Msg_WriteChar('A'); // Ausgabe: A Msg_WriteChar('D'); // Ausgabe: D Msg_WriteChar('C'); // Ausgabe: C Msg_WriteChar(channel|0x30); // Ausgabe der Kanalnummer über eine // bitweise ODER-Verknüpfung mit dem // Hexwert des ASCII-Zeichens 0. Msg_WriteChar(SPACE); // Ausgabe: Leerzeichen Msg_WriteChar(':'); // Ausgabe: : Msg_WriteChar(SPACE); // Ausgabe: Leerzeichen Msg_WriteWord(ADC_Wert); // Ausgabe: gemessener Wert Serial_WriteText(Ausgabe); Serial_Write(CR); Serial_Write(LF); } //------------------------------------------------------- // Hauptprogramm // void main(void) { Serial_Init(SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); while (1) { // Funktionsaufruf mit Angabe des verwendeten Kanals, // des unteren und des oberen Limits. // Beide Limits wurden in Bezug auf die verwendete Referenzspannung // ADC_VREF_VCC (5V) berechnet. // unteres Limit 3,5V: 3,5V/4,8828mV = 717 (0x02CD) // oberes Limit 4,5V: 4,5V/4,8828mV = 922 (0x039A) ADC_Check_Limit(ADC0,0x02CD, 0x039A); // Der Eingang wird alle 500ms gelesen und ausgewertet. AbsDelay(50); } } > Hallo Ralf, > > wie möchtest Du denn die Daten über die serielle ausgeben? Mit Serial_Write() kann man ein Byte auf > die Serielle schicken, oder man konvertiert die Werte in einen Text String und gibt sie dann mit > Serial_WriteText() aus. Es gibt mehrere Beispielprogramme, wie man Text in einen String schreibt. > Man kann die Messwerte z.B. mit Str_WriteInt() in den String schreiben und dann ausgeben. > > Gruss Peter > > > Hallo liebe Anwender, > > > > kann jemand einem C-Neuling eine Hilfestellung geben. Wir versuchen einen Messwert vom > > ADC-Port über die serielle Schnittstelle auszugeben. Textausgaben funktionieren, aber wie > > bekomme ich den Messwert direkt über die Schnittstelle gesendet ? Kann hier jemand helfen ? > > > > Vielen Dank > > > > Ralf | ||
Antwort schreiben Antworten: Re: Serielle Messwertausgabe (von Peter S - 26.08.2005 17:16) Re: Serielle Messwertausgabe (von Reiner S. - 29.08.2005 15:51) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum