Würde mal bitte einer der angemeldeten User die "lcd-routines.asm" aktualisieren, diese Datei wurde stark überholt (Unstimmigkeiten beseitigt), stark erweitert und entspricht jetzt dem AVR-LCD-Tutoriel. Es sind jetzt folgende Subs implementiert: - lcd_data - lcd_command - lcd_init - lcd_clear - lcd_home - lcd_cursor_on - lcd_cursor_off - lcd_space - lcd_flash_string - lcd_ram_string - lcd_load_user_chars - lcd_number - lcd_number16 - lcd_number_hex - lcd_number_bit - lcd_bcd zum Nachweis der Funktionsfähigkeit ein kleines Testprogramm. <avrasm> .include "m8def.inc" .def temp1 = r16 .def temp2 = r17 .def temp3 = r18 ldi temp1, LOW (RAMEND) ; LOW-Byte der obersten RAM-Adresse out SPL, temp1 ldi temp1, HIGH(RAMEND) ; HIGH-Byte der obersten RAM-Adresse out SPH, temp1 rcall lcd_init ; Display initialisieren rcall lcd_clear ; Display löschen rcall lcd_load_user_chars ; User Zeichen in das Display laden rcall lcd_cursor_off ; Cursor aus ; *** erste Zeile *** ldi temp1, 0x00 + 0x80 ; DDRam Adr. + Bit 7 rcall lcd_command ; Adresse ausgeben ; const Text aus Flash mit eingebautem Zeichengenerator ldi ZL, LOW (text * 2) ; Adresse des Strings in den ldi ZH, HIGH(text * 2) ; Z-Pointer laden rcall lcd_flash_string ; Unterprogramm gibt String aus der rcall lcd_space ; Leerzeichen ; Hex Zahl ausgeben ldi temp1, 0xAB rcall lcd_number_hex rcall lcd_space ; Leerzeichen ; Binär Zahle ausgeben ldi temp1, 0b10101010 rcall lcd_number_bit ; *** zweite Zeile *** ldi temp1, 0x40 + 0x80 ; DDRam Adr. + Bit 7 rcall lcd_command ; Adresse ausgeben ; const Text User-Zeichen ldi temp1, 2 ; Ausgabe des User-Char "R" rcall lcd_data ldi temp1, 1 ; Ausgabe des User-Char "V" rcall lcd_data ldi temp1, 0 ; Ausgabe des User-Char "A" rcall lcd_data rcall lcd_space ; Leerzeichen ; 8 Bit Zahl ausgeben ldi temp1, 123 ; 123 ausgeben rcall lcd_number rcall lcd_space ; Leerzeichen ; 16 Bit Zahl ausgeben ldi temp3, High (54321) ; 54321 ausgeben ldi temp2, Low (54321) rcall lcd_number16 rcall lcd_space ; Leerzeichen ; BCD Zahl ausgeben ldi temp1, 0x78 ; 78 ausgeben rcall lcd_bcd loop: rjmp loop text: .db "AVR",0 ; Stringkonstante, durch eine 0 ; abgeschlossen .include "lcd-routines.asm" ; LCD Funktionen </avrasm> Entweder darf ich es nicht als Unangemeldeter User oder ich stelle mich zu prasselig an. Danke Z8
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.