Tach zusammen, folgendes Problem nach dem ersten Einschalten funktioniert die 2. Zeile meines Displays(Reichelt Displaytech 162)nicht, drücke ich danach wie ein irrer (1000.Mal hintereinander)auf den Resetknopf springt sie dann doch an. Hat jemand ne Ahnung woran das liegen könnte. Vielleicht an der Initialisierung des LCD? Wäre dankbar für Hilfe. .EQU init_display = 0b00000011 ;to initialize LCD .EQU four_bit_mode = 0b00000010 ;to initialize 4-bit mode .EQU clear_LCD = 0b00000001 ;loesche Anzeige .EQU home_LCD = 0b00000010 ;return home .EQU home_sec_line = 0b11000000 ;Cursor an den Anfang der zweiten Zeile .EQU set_LCD = 0b00101000 ;4 bits,2 Zeilen,5x7dots .EQU LCD_on = 0b00001100 ;schalte LCD ein .EQU curser_on = 0b00001110 ;schalte LCD ein, Curser an .EQU entry_mode = 0b00000110 ;setze Cursor +++++Initialisiere LCD+++++++++++++++++ init_lcd: cbi PORTA,RS ;clear steuerleitungen cbi PORTA,RW ; cbi PORTA,E ; ldi temp,3 ;powerwaitup 15ms wloop1: rcall delay_5ms ;... dec temp ;... brne wloop1 ;... ;***Initialize LCD ldi buffer,init_display ;send 3-times 0x03 out PORTC,buffer ;1 rcall delay_5ms ;wait 5ms out PORTC,buffer ;2 rcall delay_5ms ;wait 5ms out PORTC,buffer ;3 rcall delay_5ms ;wait 5ms ldi buffer, four_bit_mode ;activate 4-bit mode out PORTC,buffer ;... ;***LCD-setup ldi buffer,set_LCD ;set LCD rcall write_instr ;... ldi buffer,LCD_on ;switch LCD on rcall write_instr ;... ldi buffer,clear_LCD ;clear display rcall write_instr ;... ldi buffer,entry_mode ;entry_mode rcall write_instr ; ret delay_5ms: ldi ZH,HIGH(13334) ldi ZL,LOW(13334) wloop2: sbiw ZL,1 brne wloop2 ret
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.