- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: rn-lcd-adapter mit C

  1. #11
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2010
    Beiträge
    24
    Anzeige

    Powerstation Test
    So, jetzt habe ich folgende Ausgabe:

    Code:
    Zeile3
    
    Zeile4
    Irgendwie ist das verwirrend...

  2. #12
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hast du es schon mit der Positonierung über lcd_gotoxy(0,0) probiert, dann weist du zumindest das die Zeilenanfangsadressen stimmem.
    Das mit dem \n habe ich noch nie probiert, kann daher nicht sagen ob es überhaupt funktioniert.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  3. #13
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2010
    Beiträge
    24
    ja, habe ich, genau das selbe Ergebnis: Zeilen 2 und 4 beginnen erst ab dem 9. Zeichen

  4. #14
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Was ist wenn du den Start der zweiten Zeile auf 0x20 setzt.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #15
    Neuer Benutzer Öfters hier
    Registriert seit
    06.03.2010
    Beiträge
    24
    Wow, jetzt funktioniert es. Ich habe einfach mal verschiedene Werte für die Zeilenstartadressen ausprobiert und auf KS0073 controller gestellt:
    Code:
    #define LCD_CONTROLLER_KS0073 1  /**< Use 0 for HD44780 controller, 1 for KS0073 controller */
    
    /** 
     *  @name  Definitions for Display Size 
     *  Change these definitions to adapt setting to your display
     */
    #define LCD_LINES           4     /**< number of visible lines of the display */
    #define LCD_DISP_LENGTH    20     /**< visibles characters per line of the display */
    #define LCD_LINE_LENGTH  0x40  /**< internal line length of the display    */ 
    #define LCD_START_LINE1  0x00  /**< DDRAM address of first char of line 1 */
    #define LCD_START_LINE2  0x15  /**< DDRAM address of first char of line 2 */
    #define LCD_START_LINE3  0x40   /**< DDRAM address of first char of line 3 */
    #define LCD_START_LINE4  0x55   /**< DDRAM address of first char of line 4 */
    #define LCD_WRAP_LINES      0     /**< 0: no wrap, 1: wrap at end of visibile line */
    Mir ist zwar immer noch unklar, wieso ich diese Adressen benutzen soll, und wo man diese findet (außer ausprobieren), aber es funktioniert ja jetzt .

    Nochmals Danke an alle für die Hilfe.

    Grüße,
    tomy

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    22.09.2008
    Beiträge
    6

    .-.

    Hallo zusammen,

    ich habe versucht mit dem AVRSTUDIO den Source mit der geänderten LCD.H zu kompilieren aber ich bekomme immer wieder die Fehlermeldung


    C:\Users\lastyle\Coding\AtmegaWinavr\lcdtest\lcdte st\default/../lcdtest.c:9: undefined reference to `lcd_init'
    C:\Users\lastyle\Coding\AtmegaWinavr\lcdtest\lcdte st\default/../lcdtest.c:12: undefined reference to `lcd_clrscr'
    C:\Users\lastyle\Coding\AtmegaWinavr\lcdtest\lcdte st\default/../lcdtest.c:15: undefined reference to `lcd_puts'

    Warum schmeisst nder mir eine undefined reference zu meinen lcd kommandos raus obwohl ich die lcd.h als header mit angegeben habe und da die befehle auch definiert sind ?

    Kann mir da jemand helfen ?

    Gruß Mario

  7. #17
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    Hi MarioK
    Zitat Zitat von MarioK Beitrag anzeigen
    ... Warum schmeisst nder ... die lcd.h als header mit angegeben ...
    Vielleicht kann man besser helfen, wenn Du Deine Includes mit nennst? Die vom "main", lcdtest und so. Einfach zumindest als Schnippsel im Codefenster zeigen.
    Ciao sagt der JoeamBerg

  8. #18
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Hallo,

    ich habe ein ähnliches Problem mit dem DIP LCD. Ich habe es an den PortC vom RN-Mega2560 angeschlossen. Leider sind beim RN-Mega2560 alle Pins paarweise vertauscht, also nicht 01234567 sondern 10325476.
    Deshalb auch die komischen einstellungen:
    #define LCD_PORT PORTC /**< port for the LCD lines */
    #define LCD_DATA0_PORT LCD_PORT /**< port for 4bit data bit 0 */
    #define LCD_DATA1_PORT LCD_PORT /**< port for 4bit data bit 1 */
    #define LCD_DATA2_PORT LCD_PORT /**< port for 4bit data bit 2 */
    #define LCD_DATA3_PORT LCD_PORT /**< port for 4bit data bit 3 */
    #define LCD_DATA0_PIN 2 /**< pin for 4bit data bit 0 */
    #define LCD_DATA1_PIN 3 /**< pin for 4bit data bit 1 */
    #define LCD_DATA2_PIN 0 /**< pin for 4bit data bit 2 */
    #define LCD_DATA3_PIN 1 /**< pin for 4bit data bit 3 */
    #define LCD_RS_PORT LCD_PORT /**< port for RS line */
    #define LCD_RS_PIN 6 /**< pin for RS line */
    #define LCD_RW_PORT LCD_PORT /**< port for RW line */
    #define LCD_RW_PIN 7 /**< pin for RW line */
    #define LCD_E_PORT LCD_PORT /**< port for Enable line */
    #define LCD_E_PIN 4 /**< pin for Enable line */

    #define XTAL 16000000 /**< clock frequency in Hz, used to calculate delay timer */

    #define LCD_CONTROLLER_KS0073 1 /**< Use 0 for HD44780 controller, 1 for KS0073 controller */

    #define LCD_LINES 4 /**< number of visible lines of the display */
    #define LCD_DISP_LENGTH 20 /**< visibles characters per line of the display */
    #define LCD_LINE_LENGTH 0x40 /**< internal line length of the display */
    #define LCD_START_LINE1 0x00 /**< DDRAM address of first char of line 1 */
    #define LCD_START_LINE2 0x15 /**< DDRAM address of first char of line 2 */
    #define LCD_START_LINE3 0x40 /**< DDRAM address of first char of line 3 */
    #define LCD_START_LINE4 0x55 /**< DDRAM address of first char of line 4 */
    #define LCD_WRAP_LINES 0 /**< 0: no wrap, 1: wrap at end of visibile line */

    #define LCD_IO_MODE 1 /**< 0: memory mapped mode, 1: IO port mode */

    Ich habe alles so eingestellt wie ich es bei verschiedenen Beiträgen im Forum gefunden habe, aber das Display zeigt nur die Schwarzen Kästen an, keinen Text.

    Im Programm hab ich nur:

    #include <stdlib.h>
    #include <avr/io.h>
    #include "lcd.h"

    int main(void)
    {
    lcd_init(LCD_DISP_ON_CURSOR_BLINK);
    lcd_clrscr();
    lcd_puts("Hello World.");

    Was kann ich noch ändern?

    Viele Grüße und Danke.

    robert

  9. #19
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Wenn du nur schwarze Kästchen hast, dann hat das init nicht funktioniert.
    Wo hast du diese Modul stecken das die Pins vertauscht sind, kontrollier das noch mal.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #20
    Neuer Benutzer Öfters hier
    Registriert seit
    26.07.2010
    Beiträge
    24
    Die Pins am RN-Mega2560 sind auf jeder Seite 50 Stück. Wenn ich ein Kabel anschließe sollten die Pins am Kabel von einer Seite zur anderen von Pin1 nach Pin50 durchnummerrierbar sein. Allerdings habe ich festgestellt, dass die Pins immer paarweise vertauscht sind. Das heißt Pin1 dann Pin0 dann Pin3 dann Pin2 und so weiter. Das kann ich leider nicht ändern (außer jeweil die Kabel paarweise verdrehen).

    Übrigens, wenn ich:
    lcd_init(LCD_DISP_ON_CURSOR_BLINK);
    lcd_clrscr();
    lcd_puts("Hello World.");

    raus nehme bekomme ich keine 4 schwarzen Leisten, also muss die init zumindestens versuchen was zu machen. Oder die init geht, aber die Ausgabe nicht .... ich weiß auch nicht weiter.
    Geändert von super-robman (25.08.2011 um 16:36 Uhr)

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress