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 - 17.01.2005 13:46)
Als Antwort auf Bug in Software - aber wo? von Jacke - 17.01.2005 13:37
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


    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)