Re: Bug in Software - aber wo? Kategorie: Programmierung (von Horst - 17.01.2005 13:46) | ||
Als Antwort auf Bug in Software - aber wo? von Jacke - 17.01.2005 13:37 | ||
| ||
> Hallo C2-Experten! > > Nun habe ich mit Hilfe einiger Beispielprogramme mein Problem des Ansteuerns eines Frequenz- > umrichters über zwei Potis leidlich hinbekommen. �ber ein Poti wird die Vorgabe der Geschwindikeit > des FU vorgegeben (Ausgabe auf Analogausgang PLM) das andere Poti ist die Zeitvorgabe. > Ich habe jetzt das ganze Wochenende damit zugebracht den Fehler: > fu(94) : ; expected > > ohne Kenntnis der Programmierung auszumerzen. Finde allerdings den Fehler nicht. > Verstehen kann ich es auch nicht, da es im einem anderen Programmteil funzt. > hier der code: > > > /* Projekt Ansteuerung Frequenzumrichter */ > > /* Autor: jacke */ > > /* Eine Steuerung für einen Frequenzumrichter > /* Vorgabe der Ausgangsspannung und der Zeit über Potis > /* Erweiterung durch Multiplexer auf 2x 7 Analogeingänge*/ > > > > > > //------------------------------------------ > function beep(int ton, int laenge,int pause) > //------------------------------------------ > { > plm.beep(ton); > sleep laenge; > plm.beep(plm.TONE_OFF); // Signal abgeschaltet, Analogport wird benutzt > sleep pause; > } > > function SetFu(int Kanal,float Value) > { > > int outvalue; > string s1; > > // was auf den ausgang geht > > outvalue=700+(21*Value); > plm.out(1,outvalue); > lcdext.goto(2,0); > s1 = "fa="; > str.putfloatf(s1,Value,2); > lcdext.print(s1) ; > } > > //--------- > thread main > //--------- > { > float x; > string s1; > float voltage; > string output; > float zeit; > string time; > int starten; > string anfangen; > > > > > // Initial LCD > lcdext.init(); > wait lcd.ready(); > lcdext.clear(); > lcdext.home(); > lcdext.goto(1,0); > > // initialisieren PLM > plm.settimebase(0,1); //Base_800 ns > plm.setmode(0,0); //Mode=digital > plm.setperiod(0,2500); //Periodenlänge= > SetFu(0,0); //Startpunkt > > > loop > { > > // Einlesen der Eingänge > //Spannung > > voltage = ports.adc(1) * 0.004; // 4 mV per ADC Digit An Eingang A1 > output = "Ve="; > str.putfloatf (output, voltage, 2); > lcdext.goto(1,0); > lcdext.print(output); > > // Zeit > zeit = ports.adc(0); // Zeit entspricht Spannung am Eingang A0 > time = "t="; > str.putfloatf (time, zeit, 2); > lcdext.goto(1,8); > lcdext.print(time); > > sleep zeit*10; > > // Einlesen der digitalen Eingänge > //Start > > starten = ports.get(0) // High-Pegel auf E0 > anfangen = "t="; > str.putfloatf (anfangen, starten, 2); > lcdext.goto(2,8); > lcdext.print(anfangen); > > > //Ausgabe auf Ausgang > SetFu(0,voltage); > > > > } > } > > > > //ENDE > > > > der Fehler wird in der Zeile: > > anfangen = "t="; > > angezeigt. > > Drei Anzeigen auf dem Display funktionieren, die vierte, unten links, Variable "anfangen" > scheint wegzulaufen, d.h. es schreibt das Display in Richtung links voll (sieht man aber nicht). > > > > > Dann hab ich noch eine Herausforderung: > wie repariert man einen Analogausgang? Hab den PAD3 / 0 zerschossen. > > > Schon mal danke fürs lesen - gro�en Dank fürs Helfen! > > > jacke > hallo jacke, in der Zeile obendrüber wo es hei�t: starten = ports.get(0) // High-Pegel auf E0 fehlt ein Semikolon hinter der letzten Klammer. beim Reparieren von PAD3/0 kann ich leider nichts dazu sagen. Gru� Horst | ||
Antwort schreiben Antworten: Re: Bug in Software - aber wo? (von Jacke - 17.01.2005 14:04) Re: Bug in Software - aber wo? (von Horst - 18.01.2005 10:33) |