- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 16

Thema: LCD Display (KS0073) in 4 Bit-Modus initialisieren und ansteuern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Für den 4bittigen IO sah ich nie einen Mehrfachreset.
    4-bitiger I/O und Mehrfach-Reset haben auch nichts miteinander zu tun. In der Reset- bzw. frühen Init-Phase der HD44780 gibt es noch keine 4-/8-Bit-Unterscheidung. Die drei gleichen Resetbefehle ist innerhalb ihrer Abfolge unterschiedlicher Zeitbedarf spezifiziert. Da scheint intern verschiedenes zu passieren, was auch die Norwendigkeit des Dreifachresets plausibel macht.
    Sorry, wenn ich jetzt zu ausschweifend gewesen sein sollte.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    37
    Beiträge
    106
    @ RoboHolIC und oberallgeier:
    der KS0073 ist fast identisch mit dem HD44780, der Unterschied macht sich in der anderen 4-Bit-Inititialisierung bemerkbar.
    Feury hat dies bezüglich seine Bib. angepasst, so dass man es auch für den KS0073 verwenden kann.

    Werde mir heute Abend nochmal den Code von Feury zu gemüte führen...

    @ schorsch: Danke für deinen Code. Werde dann mir auch mal anschauen.

    Ich werde jetzt erstmal euer Input verarbeiten. Danke für euere schnellen Antworten.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    37
    Beiträge
    106
    Nachdem es immer noch nicht funktionieren will, bin ich immer noch kein schritt weiter.

    Also habe ich mir gedacht: Alles auf dem Steckbrett platt machen, neu verdrahten und die Bib. von Fleury benutzen....... Ja..... Funktioniert auch nicht. Noch nicht mal das erstellen der Hex File.

    Fehlermeldung:
    3 ld returned 1 exit status
    1 undefined reference to 'lcd_init'
    2 undefined reference to 'lcd_puts'
    hier mein überschaubarer Code:

    Code:
    /*
     * BMA020_LCD.c
     *
     * Created: 10.10.2014 16:26:27
     *  Author: Jimmy
     *
     * - Port B:
     * + PB0: LED grün
     *
     * - Port C:
     * + PC4: SDA
     * + PC5: SCL
     *
     * Pin Konfiguration:
     * - Port D
     * + PD0: Data0
     * + PD1: Data1
     * + PD2: Data2
     * + PD3: Data3
     * + PD4: RS Pin
     * + PD5: RW Pin
     * + PD6: E Pin
     * + PD7: NC
     */ 
    
    
    #include <avr/io.h>
    #include "Bib/lcd.h"
    #define F_CPU 8000000UL
    #include <util/delay.h>
    
    
    
    int main(void)
    {
        // Portrichtung konfigurieren
        DDRB=0x01;
        
        // Initialisierung
        lcd_init(LCD_DISP_ON);
        
        // Begrüßungstext
        lcd_puts("Hallo Unbekannter");
        
        while(1)
        {
            // Den Controller beschäftigen
            PORTB|=(1<<PB0);
        }
    }
    Bin ich so unfähig, oder habe ich einfach nur ein riesen Brett vor meinen Kopf?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Du solltest doch zuerst die Lib. von Fleury zum laufen bringen, dann weist du das die Hardware funktioniert.
    Aber offensichtlich hast du schon ein Problem beim Compilieren.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Du must das C File der Lib von Fleury in dein Makefile einbinden.

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    37
    Beiträge
    106
    Ich habe den Fehler gefunden.


    Ich habe bei der Initialisierung das Bit für den Decrement/Increment Mode falsch gesetzt.
    Wenn er bei der ersten Position bereits abwärts zählt, kann nur mist raus kommen.


    Danke für die Unterstützung.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.09.2009
    Ort
    Berlin (Mariendorf)
    Beiträge
    1.023
    Zitat Zitat von Jimmybot Beitrag anzeigen
    Ich habe den Fehler gefunden.
    Hey, Glückwunsch zum Erfolg, Dank für die Nennung der Fehlerursache und Anerkennung für deine Ausdauer bei der Fehlersuche !!!

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    37
    Beiträge
    106
    Zitat Zitat von Hubert.G Beitrag anzeigen
    Du solltest doch zuerst die Lib. von Fleury zum laufen bringen, dann weist du das die Hardware funktioniert.
    [...]
    Genau das habe ich nun vor.

    Zitat Zitat von schorsch_76
    Du must das C File der Lib von Fleury in dein Makefile einbinden.
    Wie mache ich das? Habe bis her noch nie eine Bib. eingebunden.


    Danke für die schnellen Antworten.

  9. #9
    Erfahrener Benutzer Roboter-Spezialist Avatar von schorsch_76
    Registriert seit
    25.03.2012
    Ort
    Kurz vor Neuschwanstein
    Alter
    48
    Beiträge
    456
    Du musst halt das C File zu deinen Source Files dazufügen ... Zeig mal dein Makefile, dann kann man hier helfen ...

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    07.04.2010
    Ort
    Im Städtedreieck Köln-Bonn-Aachen
    Alter
    37
    Beiträge
    106
    Zitat Zitat von schorsch_76 Beitrag anzeigen
    Du musst halt das C File zu deinen Source Files dazufügen ... Zeig mal dein Makefile, dann kann man hier helfen ...
    Code:
    ################################################################################
    # Automatically-generated file. Do not edit!
    ################################################################################
    
    SHELL := cmd.exe
    RM := rm -rf
    
    USER_OBJS :=
    
    LIBS := 
    PROJ := 
    
    O_SRCS := 
    C_SRCS := 
    S_SRCS := 
    S_UPPER_SRCS := 
    OBJ_SRCS := 
    ASM_SRCS := 
    PREPROCESSING_SRCS := 
    OBJS := 
    OBJS_AS_ARGS := 
    C_DEPS := 
    C_DEPS_AS_ARGS := 
    EXECUTABLES := 
    OUTPUT_FILE_PATH :=
    OUTPUT_FILE_PATH_AS_ARGS :=
    AVR_APP_PATH :=$$$AVR_APP_PATH$$$
    QUOTE := "
    ADDITIONAL_DEPENDENCIES:=
    OUTPUT_FILE_DEP:=
    LIB_DEP:=
    
    # Every subdirectory with source files must be described here
    SUBDIRS :=  \
    ../Bib/
    
    
    # Add inputs and outputs from these tool invocations to the build variables 
    C_SRCS +=  \
    ../Bib/lcd.c \
    ../BMA020+LCD.c
    
    
    PREPROCESSING_SRCS += 
    
    
    ASM_SRCS += 
    
    
    OBJS +=  \
    Bib/lcd.o \
    BMA020+LCD.o
    
    OBJS_AS_ARGS +=  \
    Bib/lcd.o \
    BMA020+LCD.o
    
    C_DEPS +=  \
    Bib/lcd.d \
    BMA020+LCD.d
    
    C_DEPS_AS_ARGS +=  \
    Bib/lcd.d \
    BMA020+LCD.d
    
    OUTPUT_FILE_PATH +=BMA020+LCD.elf
    
    OUTPUT_FILE_PATH_AS_ARGS +=BMA020+LCD.elf
    
    ADDITIONAL_DEPENDENCIES:=
    
    OUTPUT_FILE_DEP:= ./makedep.mk
    
    LIB_DEP+= 
    
    # AVR32/GNU C Compiler
    
    
    
    
    
    Bib/%.o: ../Bib/%.c
        @echo Building file: $<
        @echo Invoking: AVR/GNU C Compiler : 3.4.2
        $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE)  -funsigned-char -funsigned-bitfields -DDEBUG  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega8 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<"
        @echo Finished building: $<
        
    
    ./%.o: .././%.c
        @echo Building file: $<
        @echo Invoking: AVR/GNU C Compiler : 3.4.2
        $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE)  -funsigned-char -funsigned-bitfields -DDEBUG  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega8 -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<"
        @echo Finished building: $<
        
    
    
    
    # AVR32/GNU Preprocessing Assembler
    
    
    
    # AVR32/GNU Assembler
    
    
    
    
    ifneq ($(MAKECMDGOALS),clean)
    ifneq ($(strip $(C_DEPS)),)
    -include $(C_DEPS)
    endif
    endif
    
    # Add inputs and outputs from these tool invocations to the build variables 
    
    # All Target
    all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
    
    $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP)
        @echo Building target: $@
        @echo Invoking: AVR/GNU Linker : 3.4.2
        $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="BMA020+LCD.map" -Wl,--start-group -Wl,-lm  -Wl,--end-group -Wl,--gc-sections -mmcu=atmega8 
        @echo Finished building target: $@
        "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature  "BMA020+LCD.elf" "BMA020+LCD.hex"
        "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom  --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0  --no-change-warnings -O ihex "BMA020+LCD.elf" "BMA020+LCD.eep" || exit 0
        "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "BMA020+LCD.elf" > "BMA020+LCD.lss"
        "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature  "BMA020+LCD.elf" "BMA020+LCD.srec"
        "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.1002\avr8-gnu-toolchain\bin\avr-size.exe" "BMA020+LCD.elf"
        
        
    
    
    
    
    
    # Other Targets
    clean:
        -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)  
        -$(RM) $(C_DEPS_AS_ARGS)   
        rm -rf "BMA020+LCD.elf" "BMA020+LCD.a" "BMA020+LCD.hex" "BMA020+LCD.lss" "BMA020+LCD.eep" "BMA020+LCD.map" "BMA020+LCD.srec"
    Auf der Suche nach dem Makefile bin ich selber drüber gestoßen, wie ich die C-Datei einbinden kann. Zumindes funktioniert jetzt das Compilieren ohne Fehlermeldung.
    Werde die Tage das mal auf meine Hardware testen. Wenn es Funktioniert, werde ich mich wieder dem ursprünglichen Problem widmen. Nehmlich ohne Fremdbibliothek das LCD ans laufen kommen.

Ähnliche Themen

  1. EADIP204 (KS0073) Display und ° (Grad) Zeichen
    Von cni im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 08.02.2009, 15:42
  2. LCD-Display; 4Bit-Modus immer möglich?
    Von brutzler im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 29.03.2008, 11:03
  3. Problem 4-zeiliges Display im 4-bit modus!! gelöst!!
    Von zumgwadrad im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 22.11.2006, 16:24
  4. LCD im 8-Bit Modus ansteuern.
    Von michi73 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 18.11.2005, 19:22
  5. LCD - initialisieren im 4-Bit Modus
    Von henne im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 12.03.2005, 00:26

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress