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

Re: Nachtrag Kategorie: Programmierung (von krassos - 27.01.2006 15:09)
Als Antwort auf Re: Nachtrag von Martin - 26.01.2006 18:10
Ich nutze:
C-Control II Unit, CC2-ReglerBoard, OSOPT V3.0
> > > > Hallo
> > > >
> > > > Hab ein Reglerboard und neue Unit von CC Tools, es sollte also
> > > >  das neueste Betriebsystem geladen sein.
> > > > Jetzt mein Problem. Ich leite den Hostmodus ein die LED am
> > > > Board leuchtet und übertrage mit der IDE das Projekt.
> > > > Statusmeldung der IDE â??Ã?bertrage Anwenderprogramm in die Unit
> > > > 100 % fertigâ??.
> > > >  Im Variablenfenster können keine Werte angezeigt werden, am
> > > > Display erscheinen alle Segmente als schwarze Balken . Nach
> > > > unbestimmter Zeit 10 Sek. bis einige Minuten erlöschen Display
> > > > und Host LED und der Summer ertönt.
> > > > Im Variablenfenster mü�ten doch normalerweise Werte zu sehen
> > > > sein ?
> > > >
> > > > Das war meine erste Hardwareerfahrung ich hoffe auf Hilfe.
> > > >
> > > > GruÃ? Martin    
> > > >
> > >
> > > Hallo
> > >
> > > Rbtest läuft das Problem lag am falschen Anschlu� einer
> > > I2C Platine.
> > > Allerdings war ich der wohl irrigen Meinung man könnte mit der
> > > IDE online Variablen überwachen was den Programmtest
> > > erheblich vereinfachen würde.
> > >
> > > Gibt es da irgend eine Möglichkeit.
> > >
> >
> > Hallo Martin,
> >
> > ja es gibt sogar zwei: entweder Du gibst die zu überwachenden Variablen am Display aus, oder
> > Du schiebst sie via hwcom zum PC.
> >
> > GruÃ? krassos
>
> Hallo Krassos
>
> Das mit dem Display leuchtet ein, aber Werte zum PC
> schieben ist wohl die bessere Lösung.
>  Allerdings müÃ?test du mir genauer auseinandersetzen wohin
>  die Reise geht.
> Wo am PC kann ich auswerten, wichtig ist daÃ? die Werte
> aktualisiert werden, sind Probleme der Schnittstellenteilung mit
> der IDE zu befürchten.
> Könnte es sein daÃ? im Buch   MSR für C-Control II etwas
> passendes dabei ist ?
>
> Danke Martin
>

Hallo Martin,

Du mu�t Dir einen Thread basteln, der nur für die Kommunikation via hwcom zuständig ist.
Für den Anfang sendet dieser Thread stupide die gewünschten Daten über hwcom.
Dazu definierst Du die zu überwachenden Variablen als Global. Der com-Thread steht als letzter in der Modulliste, hat also auf
alle anderen Module Zugriff.

PC-Seitig ist Hyperterminal eine gute, wenig aufwendige Lösung.
mit Hyperterminal6.3 (Freeware) kannst Du Langzeitcaptures erstellen mittels Text aufzeichnen.

Auswerten ist dann ganz leicht je nach Aufgabe mit Excel o.ä. möglich.

Wie man das CC2-seitig macht ist ganz gut bei "serielle Schnittstellen" beschrieben. Besonders
hervorzuheben dabei der Abschnitt "Steuerung über Modem".

Hier mal ein Beispiel: (mit ansatz für Menüstruktur)

/********************************************************************/
function subhead()
{
byte a;
hwcom.put(12);
for a =0 ... 34{hwcom.put(42);}
hwcom.ret();
hwcom.print("   Solcom");
hwcom.ret();for a =0 ... 34{hwcom.put(42);}
hwcom.ret();
}
/********************************************************************/

/********************************************************************/
function mainmenu()
{string text1,text2,text3,text4,text5,text6,text7,text8,text9,text10;
text1="4--> MeÃ?adapter 1 kalibrieren";text2="2--> Solarpumpe";
text3="1--> DCF - Status";text4="q--> beenden";
text5="3--> Mischerdaten";text6="5--> MeÃ?adapter 3 kalibrieren";
text7="6--> MeÃ?adapter 4 kalibrieren";text8="MeÃ?adapter ";text9=" kalibrieren";
text10="--> ";

subhead();hwcom.ret();hwcom.ret();
hwcom.print(text3);hwcom.ret();hwcom.ret();
hwcom.print(text2);hwcom.ret();hwcom.ret();
hwcom.print(text5);hwcom.ret();hwcom.ret();
hwcom.print(text1);hwcom.ret();hwcom.ret();
hwcom.print(text6);hwcom.ret();hwcom.ret();
hwcom.print(text7);hwcom.ret();hwcom.ret();
hwcom.print(text4);hwcom.ret();hwcom.ret();
}
/********************************************************************/

function submain()
{int second,rcv,x;
mainmenu();

x=-1;
while x
{
//subdate();
//if system.second()!=second {
//subuhrzeit();second=system.second();}

if hwcom.rxd()
    {
    rcv=hwcom.get();
    if (rcv > 47) and (rcv < 58) //gültigkeitsbereich Taste 0...9
       {
       if rcv == 53 {menüpunkt5();mainmenu();hwcom.ret();}                        //48=0
       if rcv == 52 {menüpunkt4();mainmenu();hwcom.ret();}
       if rcv == 49 {menüpunkt1();mainmenu();hwcom.ret();}
       if rcv == 50 {menüpunkt2();mainmenu();hwcom.ret();}
       if rcv == 51 {menüpunkt3();mainmenu();hwcom.ret();}
       }
       if (rcv==81) or (rcv==113) {hwcom.clr();x=0;continue;}  //Q oder q für quit
     
       hwcom.flush();
       }
}
}
//********************************************************************
thread main
{
byte rcv;
hwcom.init();
hwcom.setspeed(8);
hwcom.set_S0CON(hwcom.set8N1);
sleep 50; //warten nach hwcom-init


loop
{
 wait hwcom.rxd();
      rcv=hwcom.get();
      if rcv==13
         {
         submain();
         hwcom.flush();
         }
      hwcom.flush();
}}


Diese Zeilen stehen als letzte im com-Modul. Ich denke, das sollte so funktionieren.
Ich hab es aus einem Programm mal rauskopiert und die fehlenden Funktionen auskommentiert.

GruÃ? krassos


    Antwort schreiben


Antworten:

Re: Nachtrag (von Martin - 28.01.2006 18:21)
    Re: Nachtrag (von krassos - 28.01.2006 19:49)