- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: RN 4x20 LCD Hex Adressen für I2C_LCD Library?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18

    RN 4x20 LCD Hex Adressen für I2C_LCD Library?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi!

    Ich bin noch Anfänger in Sachen C und AVR Controller.
    Ich hab mir das RN-Control MEGA 32 + 4X20 LCD gekauft.

    Nun schnall ich einfach nicht, wie ich aus dem Datenblatt die Hex Commandos bzw. HEX Adressen herauslesen kann, die ich fir die I2C_LCD Library von Peter Fleury brauche.

    Ich habe mir mittels eines Port Expanders (PCF 8574) und des RN_4x20LCD´s einen I2C-LCD-Adapter gebastelt.
    Die Verdrahtung erfolgte nach RN-Norm also:

    PCF 8574 / LCD

    P0 auf DB7
    P1 auf DB6
    P2 auf DB5
    P3 auf DB4
    P4 auf Hintergrundbeleuchtung EIN/AUS
    P5 auf E
    P6 auf R/~W
    P7 auf RS

    A0, A1, A2 jeweils auf GND => Slave Adresse 0x40
    SDA und SCL mit 4k7 auf +5V
    ~INT nicht angeschlossen

    Datenblatt zu Display:
    http://www.robotikhardware.de/downlo...ardware.de.pdf

    Im Anhang das Header-File mit den benötigten Adressen.

    Könnt mir vielleicht da jemand weiterhelfen, wäre echt dankbar, wenn das endlich funktionieren würde.

    Grüsse Rick
    Angehängte Dateien Angehängte Dateien

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18
    Hat/Hatte den keiner das selbe Problem?

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    ICh komme mit deiner Frage nicht ganz klar, steht doch alles im *.h file drinnen was benötigt wird, da gibt es keine Adressen.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18
    Hi!
    Unter Display Configuration:
    LCD_LINE1 bis 4

    ENTRYMODES, DISPLAYMODES, SHIFTMODES

    Da stehen überall HEX-Adressen, welche auf Dein Display angepasst werden müssen.

    Irgendwo hab ich auch gelesen, daß diese Library für HD Controller nicht funktioniert, nur für KS-Controller.
    Ganz am Anfang steht jedoch für Displays mit HD44780 Controller und PCF8574X Expander?

    Mein Display zeigt gar nix an?

    Gruß Rick

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18
    Hat keiner von euch ein LCD per Portexpander am I2C-Bus hängen?

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Das ist nicht sehr üblich.
    Die hex Aderesen brauchst du zumeist nicht ändern.
    Code:
    #ifndef F_CPU
    	#define F_CPU 16000000			/**< Change this to the clock-rate of your microcontroller */
    #endif
    
    #define wait1us	_delay_loop_1((F_CPU * 0.000001) / 3)	/**< 1 us delay */
    #define wait1ms	_delay_loop_2((F_CPU * 0.001) / 4)	/**< 1 ms delay */
    /*@}*/
    
    //-------------------------------------------------------------------------------------------------------------------
    
    #include <util/delay.h>
    #include <stdbool.h>
    #include <stdint.h> 
    #include "i2cmaster.h"
    
    //--Display-Configuration-Settings-----------------------------------------------------------------------------------
    
    /** \defgroup DISPLAY_CONFIGURATION DISPLAY CONFIGURATION
     Change this settings to your configuration.
    */
    /*@{*/
    #define LCD_I2C_DEVICE		0x40	/**< Change this to the address of your expander */
    #define LCD_LINES			4	    /**< Enter the number of lines of your display here */
    #define LCD_ROWS			20	    /**< Enter the number of rows of your display here */
    
    #define LCD_LINE1			0x00	/**< This should be 0x00 on all displays */
    #define LCD_LINE2			0x20	/**< Change this to the address for line 2 on your display */
    #define LCD_LINE3			0x40	/**< Change this to the address for line 3 on your display */
    #define LCD_LINE4			0x60	/**< Change this to the address for line 4 on your display */
    /*@}*/
    
    //-------------------------------------------------------------------------------------------------------------------
    
    //--The-following-definitions-are-corresponding-to-the-PIN-Assignment-(see-above)------------------------------------
    
    /** \defgroup PIN_ASSIGNMENT PIN ASSIGNMENT
     This pin assignment shows how the display is connected to the PCF8574.
    */
    /*@{*/
    #define LCD_D4_PIN			3	/**< LCD-Pin DB4 is connected to P3 on the PCF8574 */
    #define LCD_D5_PIN			2	/**< LCD-Pin DB5 is connected to P2 on the PCF8574 */
    #define LCD_D6_PIN			1	/**< LCD-Pin DB6 is connected to P1 on the PCF8574 */
    #define LCD_D7_PIN			0	/**< LCD-Pin DB7 is connected to P0 on the PCF8574 */
    #define LCD_RS_PIN			7	/**< LCD-Pin  RS is connected to P7 on the PCF8574 */
    #define LCD_RW_PIN			6	/**< LCD-Pin  RW is connected to P6 on the PCF8574 */
    #define LCD_EMPTY_PIN		4	/**< this pin    is not connected */
    #define LCD_E_PIN			5	/**< LCD-Pin   E is connected to P5 on the PCF8574 */
    /*@}*/
    Am Anfang die F_CPU einstellen
    Unter Display-Configuration-Settings
    Die I2C-Adresse des Port-Expander
    Anzahl der Zeilen
    Anzahl der Zeichen je Zeile

    Unter Pin-Assignment
    Hier musst du die Zuordnung der Expander-Pin zu den LCD-PIn machen

    Sonst sollte für Standardfunktionen keine weitere Einstellung notwendig sein.
    Bist du sicher das I2C überhaupt funktioniert
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18
    Hi Hubert!

    Das wundert mich schon. Gerade bei Microcontrollern sind doch immer viel zu wenige Pins da.

    Genau die Anpassungen hab ich ja gemacht, aber am Display rührt sich gar nix!? Siehe mein angehängtes Header-File

    Die Zeilenadressen hab ich geändert und zwar wie hier in einem Post beschrieben. Einer hatte ja schon mal das selbe Problem.
    Da steht auch, daß die Bibliothek nur für Displays mit KS Controller richtig funktioniert?

    Gruß Rick

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Das mit den zuwenig Pin ist schon richtig, allerdings neigen die meisten dazu einen größern Kontroller zu nehmen als einen zusätzlichen IC.
    Poste doch mal deinen Code hier, vieleicht kann man da was erkennen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    08.09.2007
    Beiträge
    18
    Hi Hubert!

    Im Anhang mein C-Code.

    Danke schon mal im voraus!

    Gruß Rick
    Angehängte Dateien Angehängte Dateien

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Hast du den beiliegenden C-Code verwendet oder einen Eigenen, wenn ja, dann fehlt der.
    Simulieren kann man das nicht vernünftig, da I2C immer die Rückmeldungen braucht, man müsste wenn es so nicht geht mit dem JTAG ansehen.
    PS: PullUp ist eingebaut?
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress