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

Re: Bug in Software - aber wo? Kategorie: Programmierung (von Horst - 18.01.2005 10:33)
Als Antwort auf Re: Bug in Software - aber wo? von Jacke - 17.01.2005 14:04
Ich nutze:
C164CI-ControllerBoard, CC2-Application-Board, OSOPT V3.0
> > > 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
> >
>

> Nimms mir nicht übel - du bist ein Fuchs!!
>
> Danke!!
>
> (wer lesen kann ist klar im Vortei!)

hallo jacke,

muÃ? lachen, denn mit Nachnamen heiÃ?e ich auch so,

GruÃ? Horst Fuchs


    Antwort schreiben


Antworten: