Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo, > > sorry wegen der Verzögerung, aber ich habe momentan viel zu tun. Mit folgenden Code kann man Zahlen > in einen Text ausgeben: > > char Ausgabe[6]; > word ADC_Wert; > > // schreibt ein word in den String mit einem offset von 0 (also direkt an den Anfang) > // die Basis ist 10 (also dezimal), und die minimale Breite ist 0 (bei größeren Werten wird der Text > // evtl. mit Nullen am Anfang aufgefüllt) > Str_WriteWord(ADC_Wert,10,Ausgabe,0,0); > > Am besten mal mit den Werten rumspielen un den String dann mit Msg_WriteText in die Debugausgabe > schicken. Sicherheitshalber den String schon mal länger definieren, z.B. char Ausgabe[12]; > > Gruss Peter > > > 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