- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: RP6v2 CC-PRO MEGA128 LCD Fehler

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    24.12.2012
    Beiträge
    65

    RP6v2 CC-PRO MEGA128 LCD Fehler

    Anzeige

    E-Bike
    Hey liebe Community,

    ich habe seit neuestem folgendes Problem.
    Wenn ich Egal welches Beispielprogramm benutze, das auf das LCD zugreift, enstehen verwirrende Zeichen auf dem LCD.
    Im Programm sind diese aber nicht definiert. Mache ich etwas im Programm falsch oder ist etwas mit dem LCD nicht inordnung?

    Was mich wundert. Habe mal das mit einem Anderen Programm aus dem Internet Probiert, da funktioniert es.
    Aber warum funktoniert es bei den Beispielprogrammen nicht ?

    Vllt. könnt ihr mir weiter helfen.
    Ich benutze dieses Display:
    http://www.conrad.de/ce/de/product/1...=detview1&rb=2

    Vielen Dank für eure Hilfe

    euer Kevin
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Bild267[1].jpg   Bild266[1].jpg  

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Ich kenne jetzt dein Programm nicht, muss also raten.

    Du kannst dir mal den Zeichensatz der M128 per UART und LCD ausgeben lassen.
    Ist da alles ok? Poste evtl. die Ausgabe hier.
    Code:
    /*******************************************************************************
     * RP6 C-Control PRO M128 Erweiterungsmodul
     * ----------------------------------------------------------------------------
     * LCD Zeichensatz Beispielprogramm
     * ----------------------------------------------------------------------------
     * Dieses Programm gibt den Zeichensatz auf dem LCD (sofern vorhanden) aus.
     *
     * Hinweis:
     * Für allgemeine Programmierhinweise zur CCPRO schauen Sie sich bitte die
     * CCPRO Dokumentation und die zugehörigen Beispielprogramme an!
     * Es sei auch nochmals darauf hingewiesen, dass die normalen Beispielprogramme
     * für die CCPRO nur zum Teil direkt auf dem RP6-CCPRO Modul laufen.
     * Die Anschlussbelegung ist natürlich komplett anders als auf dem
     * C-Control Application Board. Auch die LCD Ansteuerung ist leicht anders,
     * da hier noch zusätzliche LEDs mit an dem Schieberegister angeschlossen sind.
     * --> Die C-Control Beispielprogramme müssen ein klein wenig angepasst
     * werden bevor sie auf diesem Modul laufen können!
     *
     * *****************************************************************************
     * Der Roboter bewegt sich in diesem Beispielprogramm NICHT und kann
     * am Rechner angeschlossen bleiben!
     ******************************************************************************/
    // WICHTIG: Immer die RP6CCLib mit einbinden:
    #include "../../RP6CCLib/RP6CCLib.cc"
    void main(void)
    {
        // WICHTIG! Immer als erstes aufrufen:
     RP6_CCPRO_Init(); // Auf Startsignal warten, LCD und andere Dinge initialisieren !
        // ------------------------------------------------------
        // Zwei Zeilen Text mit dem LCD anzeigen:
        showScreenLCD("RP6 CCPRO M128", "LCD Zeichensatz!");
        // Text über serielle Schnittstelle ausgeben:
        newline(); // Neue Zeile
        println("   ________________________");
        println("   \\| RP6  ROBOT SYSTEM |/");
        println("    \\_-_-_-_-_-_-_-_-_-_/ ");
        newline();
        println("    Auf geht's!  ");
        newline();
        // 2 Sekunden Pause:
        AbsDelay(1000);
        // LCD löschen:
     clearLCD();
     // Neue Zeile:
     newline();
        // ------------------------------------------------------
        // LCD und RS232 Zeichensatz:
     byte i, pos;   // Variablen deklarieren
     // ---------------------------------------
     // Hauptprogramm:
      // Terminal Ausgabe:
      print("C-Control Pro IDE Zeichensatz:");
      newline();
      print("Zeichen 32..63:");
      newline();
      for (i = 32; i <= 63; i++) {
       Serial_Write(0, i);
      }
      newline();
      print("Zeichen 64..95:");
      newline();
      for (i = 64; i <= 95; i++) {
       Serial_Write(0, i);
      }
      newline();
      print("Zeichen 96..127:");
      newline();
      for (i = 96; i <= 127; i++) {
       Serial_Write(0, i);
      }
      newline();
      print("Zeichen 160..191:");
      newline();
      for (i = 160; i <= 191; i++) {
       Serial_Write(0, i);
      }
      newline();
      print("Zeichen 192..223:");
      newline();
      for (i = 192; i <= 223; i++) {
       Serial_Write(0, i);
      }
      newline();
      print("Zeichen 224..255:");
      newline();
      for (i = 224; i <= 254; i++) {
       Serial_Write(0, i);
      }
      Serial_Write(0, 255);
      newline();
      println("Das Ende ...");
      // LCD Ausgabe:
      printLCD("Zeichen 32..63:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 32; i <= 63; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      AbsDelay(10000);
      clearLCD();
      printLCD("Zeichen 64..95:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 64; i <= 95; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      AbsDelay(10000);
      clearLCD();
      printLCD("Zeichen 96..127:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 96; i <= 127; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      AbsDelay(10000);
      clearLCD();
      printLCD("Zeichen 160.191:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 160; i <= 191; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      AbsDelay(10000);
      clearLCD();
      printLCD("Zeichen 192.223:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 192; i <= 223; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      AbsDelay(10000);
      clearLCD();
      printLCD("Zeichen 224.255:");
      AbsDelay(3000);
      pos = 0;
      clearLCD();
      for (i = 224; i <= 254; i++) {
       writeCharLCD(i);
       pos++;
       if (pos > 15) {
        setCursorPosLCD(1, 0);
        pos = 0;
       }
      }
      writeCharLCD(255);
      AbsDelay(10000);
      clearLCD();
      printLCD("Das Ende ...");
     while(true) {
     }
     // Ende des Hauptprogramms!
     // ---------------------------------------
    }
    Gruß
    Dirk

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von robo_tom_24
    Registriert seit
    04.02.2012
    Ort
    Burgenland, Österreich
    Beiträge
    485
    Wenn ich mir die Zeichentabelle im Datenblatt ansehe, dann sieht es so aus, als sendest du für die Spalteninformation nicht LL** sondern HH**.

    grüße

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    24.12.2012
    Beiträge
    65
    Hey danke für die Antworten.
    @ Dirk: Ich habe mal versucht den Code zu Kompilieren, nur dann kommt ein Kompilerfehler. (Hab dir mal das Projekt als ZIP mal hochgeladen. Der Fehler im Klartext:
    Übersetze Projekt LCD#1
    C-Control Pro Compiler (C) 2011 Conrad Electronic
    Durchlaufe Pass 1
    Durchlaufe Pass 2
    D:\RP6CCLib.cc(408,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
    D:\RP6CCLib.cc(410,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    D:\RP6CCLib.cc(427,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
    D:\RP6CCLib.cc(429,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    D:\RP6CCLib.cc(839,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    5 Fehler - Kompilation abgebrochen.
    Schreibe Symboldaten - 8462 bytes..

    Vlt wäre es Möglich, das du mir ein Fertig Kompiliertes Projekt mal schickst, dann probier ich es nochmal.

    @ robo_tom_24: Okay. Aber warum machd das Display das nur bei den Beispielprogrammen und nicht bei den selbst geschriebenden. ??

    lg kevin
    LCD#1.zip

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @kevin:
    Ich habs nochmal probiert: Das Prog kompiliert ok. Timer 3 wird auch gar nicht im Programm verwendet.

    Der Semantik-Fehler ist in der RP6CCLib.cc???
    Gruß
    Dirk

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    24.12.2012
    Beiträge
    65
    Nach dem Kompilieren kommt der Fehler ja. Da steht wie Oben :

    Übersetze Projekt LCD#1
    C-Control Pro Compiler (C) 2011 Conrad Electronic
    Durchlaufe Pass 1
    Durchlaufe Pass 2
    D:\RP6CCLib.cc(408,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
    D:\RP6CCLib.cc(410,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    D:\RP6CCLib.cc(427,5): Semantik Fehler - Funktion Timer_T3FRQ nicht definiert
    D:\RP6CCLib.cc(429,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    D:\RP6CCLib.cc(839,5): Semantik Fehler - Funktion Timer_T3Stop nicht definiert
    5 Fehler - Kompilation abgebrochen.
    Schreibe Symboldaten - 8462 bytes..

    und in der Ansicht wird die RP6CCLib.cc angezeigt. Und nach anklicken springt er an die fehlerhaften teile.
    Es scheint also als käme der Fehler aus der RP6CCLib.cc

    Wärs möglich, dass du mir das Projekt oder zumindest die Korrigierte RP6Lib zuschickst ?

    lg kevin
    Klicke auf die Grafik für eine größere Ansicht

Name:	Bild272[1].jpg
Hits:	9
Größe:	49,4 KB
ID:	25015Klicke auf die Grafik für eine größere Ansicht

Name:	Bild273[1].jpg
Hits:	5
Größe:	50,3 KB
ID:	25016
    Geändert von Kevin0597 (01.04.2013 um 11:51 Uhr) Grund: EDIT: Hab Timer Fehler mal einfach aus Lib Gelöscht. Kompliation ging dann.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von robo_tom_24
    Registriert seit
    04.02.2012
    Ort
    Burgenland, Österreich
    Beiträge
    485
    Hast du vielleicht hardwaremäßig was geändert? sodass unabsichtlich ein HIGH Pegel entsteht?

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    24.12.2012
    Beiträge
    65
    Nein es wurde nix verändert .
    Das ist es ja was mich wundert. Ich hab das LCD gekauft so wies war und habs montiert.
    Aber das der fehler ja nur bei den Beispielprogrammen auftritt und nicht bei dem Servoprogramm aus dem Interent.

    lg kevin

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    Hallo,

    nutzt Du die aktuellen Beispielprogramme (v. 20090131)?
    Bei den älteren war mal das Timing zu knapp bemessen.

    Oh und die verschiedenen CC-PRO IDE Versionen könnten sich evtl. auch
    anders verhalten - das ist aber nur eine Vermutung.

    MfG,
    SlyD

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    24.12.2012
    Beiträge
    65
    mhh neein die neuen bsp programme hab ich noch nicht ausprobiert
    muss ich mal machen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Probleme Zugriff auf Pro Mega128
    Von neo_swiss im Forum Robby RP6
    Antworten: 7
    Letzter Beitrag: 28.05.2010, 16:43
  2. CC-PRO MEGA128 - Zwei Versionen ?
    Von Spanky im Forum Robby RP6
    Antworten: 2
    Letzter Beitrag: 14.12.2009, 22:32
  3. Antworten: 4
    Letzter Beitrag: 15.05.2009, 12:21
  4. Mega128 EEPROM Fehler
    Von Skragan im Forum AVR Hardwarethemen
    Antworten: 12
    Letzter Beitrag: 24.03.2009, 12:00
  5. C-Control-Pro Mega128 Board an Bascom
    Von Crashmichl im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 23.03.2007, 08:53

Berechtigungen

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

Solar Speicher und Akkus Tests