-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: Fehlermeldung im DCF-Programm

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161

    Fehlermeldung im DCF-Programm

    Anzeige


    Hallo,
    kann mir bitte jemand helfen?
    Ich benutze das DCF-Teil von Conrad_Elektronik und die CC2, mit OS-Version 3.1.
    Aus einen Buch habe ich dieses Programm, was ich von "lcd" in "lcdext" umgewandelt habe (das Modul "lcdext" ist aktiviert). Leider erhalte ich 4 Fehlermeldungen (bei "X").
    Woran kann das liegen?
    Und noch eine Frage:
    Wie muß das Programm für eine Tagesanzeige z.B. Sa und Datumsanzeige erweitert werden?
    Vielen Dank.
    MfG. HM


    /*************************
    dcf1.C2
    DCF-Funkuhr
    **************************/

    //------------
    thread main
    //------------
    {
    string std,min,sec,s;
    int n, second;
    second=system.second();
    lcdext.init ();
    lcdext.goto(0,0);
    n=n+1;
    std = "";
    str.putintf (std,system.hour(),2);
    min="";
    str.putintf (min,system.minute(),2);
    sec="";
    str.putintf (sec,system.second(),2);
    s=std+":"+min+":"+sec;
    X lcdext.print(s,str.length(s));
    X lcdext.clreol();
    lcdext.goto (1,0);
    s = "";
    str.putint (s,system.dcferr());
    X lcdext.print(s,str.length(s));
    X lcdext.clreol();
    wait (not(second==system.second()));
    }

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    lcdext

    Hallo HM,

    in der lcdext gibt es die Funktionen print und clreol so nicht (mehr). Sieh dir die Hilfe (lcdext.html) an!
    In der print Funktion gibts nur 1 Parameter, du kannst das str.length(s) weglassen.
    Das clreol must du ganz weglassen, stattdessen kannst du einfach mehrere " " (Leerzeichen) hinter s ausgeben, die das Löschen bis zum Ende der Zeile (= clreol) machen.

    Gruß Dirk

    P.S.: Zum Datum kann ich nichts sagen, weil ich deine DCF-Lib nicht kenne. Falls sie auch ein DCF-Datum liefert, kann man ihn auch genauso auf dem LCD darstellen. Das System-Datum läßt sich jedenfalls auch so darstellen, wie du es mit der Zeit gemacht hast: Aus einem String zusammenbasteln.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161
    Hallo Dirk,
    du scheinst wieder mal der Einzige zu sein, der mir hilft, vielen Dank.
    die LCDEXT.htm hatte ich schon mal überflogen, leider reicht meine Erfahrung nur für Programme, die ich etwas verändern kann.
    Ich werde es nochml probieren.
    MfG. HM

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161
    Hallo Dirk,
    die Uhr läuft jetz mit "hh:mm:ss", sie zählt auch die Zeit.
    Leider stellt sie sich nicht nach dem DCF-Signal um.
    Obwohl am Oszilloskop ein Takt zu sehen ist, tut sich nichts, ich weiß
    auch nicht, wie dieser Takt aussehen muß.
    Das Programm sieht jetzt so aus.
    MfG. HM
    /*************************
    dcf1.C2
    DCF-Funkuhr
    **************************/

    //------------
    thread main
    //------------
    {
    string std,min,sec,s;
    int n, second;
    second=system.second();
    lcdext.init ();
    lcdext.goto(0,0);
    n=n+1;
    std = "";
    str.putintf (std,system.hour(),2);
    min="";
    str.putintf (min,system.minute(),2);
    sec="";
    str.putintf (sec,system.second(),2);
    s=std+":"+min+":"+sec;
    lcdext.print(s);
    lcdext.goto (1,0);
    s = "";
    //str.putint (s,system.dcferr());
    lcdext.print(s);
    wait (not(second==system.second()));
    }

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    DCF

    Hallo HM,

    dein Prog gibt ja nur die Systemzeit der CC2 aus. Die Ausgabe ist nur dann auch die DCF-Zeit, wenn das DCF-Signal vorher decodiert und in die Systemzeit übertragen wurde (macht das Betriebssystem).

    Fragen:
    1. Hast du die CC2 auf dem RP5?
    2. Wo genau hast du das DCF-Modul angeschlossen?

    Vielleicht hilft auch das weiter: http://www.roboternetz.de/phpBB2/viewtopic.php?t=14891

    Gruß Dirk

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161
    Hallo Dirk,
    vielen dank für deine Antwort.
    Ich habe die CC2 auf dem RP5, und das DCF- Modul auf der Experimentierplatine.
    Der Ausgang des DCF-Moduls ist bei Y90 angeschlossen, die äußere Reihe wurde für das Verbindungskabel verwendet.
    MfG. HM

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    DCF am RP5 via CC2

    Hallo HM,

    ja, das ist der DCF-Eingang der CC1, an dem dein DCF-Modul hängt. Du müßtest also, wenn alles elektrisch o.k. ist, schon die richtige DCF-Zeit in der CC1 auf dem RP5 haben.
    Damit die Zeit in die CC2 gelangt, gibt es in der Lib ccrp5.c2 die Funktionen getRTC und getRTCDATE. Die 2 Funktionen übertragen die Zeit/das Datum aus der CC1 (also die DCF-Zeit!) via RS232 in die CC2-RTC.
    Also so:
    ccrp5.getRTC(); //CC1-Uhrzeit lesen
    ccrp5.getRTCDATE(); //CC1-Datum lesen

    Dann kann man sie mit deinem Programm auf dem LCD anzeigen.

    Gruß Dirk

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161
    Hallo Dirk,
    das Weiterarbeiten an dem Programm wird sich leider wegen erheblichen Zeitproblemen verzögern, ich bin momentan arbeitsmäßig voll ausgelastet und muß auch am Wochenende arbeiten.
    Ich habe das Programm so ausprobiert, wie du es beschrieben hast, leider funktioniert es noch nicht oder das DCF-Empfangsmodul ist defekt oder der Empfang ist schlecht.
    Vielen Dank für die bisherige Hilfe, ich melde mich wieder.
    MfG. HM

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied Avatar von HM
    Registriert seit
    01.12.2003
    Beiträge
    161
    Hallo Dirk,
    ich habe dein Programm an der von dir genannten Seite angesehen, es ist sehr gut , es zeigt auch an, ob DCF-Empfang vorhanden ist.
    Genau so ein Programm hatte ich mir vorgestellt.
    Ich habe es ausprobiert und die Zeilen
    //-------------------------------
    thread main
    //-------------------------------
    {
    string s;
    lcdext.init();

    an den Anfang des Programms eingefügt.
    Leider erscheint nur die Anzeige RTC1: 06:00:00
    Die zweite Zeile bleibt leer, was habe ich da noch vergessen?
    Ps. Ich habe schon einige Stunden herumprobiert, leider ohne Ergebnis.
    MfG. HM

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791

    DCF am Robby

    Hallo HM,

    wieder an Bord? Das Geldverdienen ist manchmal lästig!

    Hast du aus dem anderen Post mein Prog vom 7.12.05 oder das komplette vom 10.12. genommen? Das vom 10.12. müßte so unverändert funktionieren.

    Wenn es das bei dir tut, ist klar, dass die Zeit aus der CC1 zur CC2 transferiert wird und auch die Anzeige der CC2-Zeit klappt.

    Wenn da aber nicht die DCF-Zeit gezeigt wird, ist etwas mit dem DCF-Empfang nicht o.k.
    Wie kann man da weiter kommen? In der Demo CCRP5_DEMO2_1.c2 (ab Version 2.3 des Treibers) gibt es einen Teil "Ausgabe des CC1-Statusregisters am LCD" (showCC1STAT), mit dem man am LCD anzeigen kann, ob überhaupt ein DCF-Signal ankommt ("DCF" steht dann in der 2. Zeile) und ob die Systemzeit schon einmal durch DCF gestellt wurde (Anzeige "ADJ"). Probier das 'mal aus. Vorher must du showSYSTEMDATA(); auskommentieren (// davor).

    Wenn der Anschluß des DCF-Moduls o.k. ist, muss nach kurzer Zeit das "DCF" in der 2. Zeile erscheinen und danach auch das "ADJ". Wenn das so ist, müßte die DCF-Zeit dann auch angezeigt werden (mit dem Prog vom 10.12.05).
    Apropos: Anschluß des Moduls: Hast du den invertierten Ausgang, Klemme 4, genommen?

    Gruß Dirk

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •