LCD: Cleanup.
This commit is contained in:
351
avr/lcd.asm
351
avr/lcd.asm
@@ -1,5 +1,9 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; LCD module
|
||||||
|
; (c) 2023 Martin Preuss
|
||||||
|
;
|
||||||
|
; Some code in this module is based on C-code in Tiny4kOLED (https://github.com/datacute/Tiny4kOLED/tree/master/src)
|
||||||
|
; by Stephen Denne (MIT license), rewritten in AVR assembler
|
||||||
;
|
;
|
||||||
; - page 0 is top line, page 7 ist bottom line
|
; - page 0 is top line, page 7 ist bottom line
|
||||||
; - column 0 is the leftmost colum, column 127 is the rightmost column
|
; - column 0 is the leftmost colum, column 127 is the rightmost column
|
||||||
@@ -20,16 +24,13 @@
|
|||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; defines
|
; defines
|
||||||
|
|
||||||
.equ LCD_CONTROLBYTE_DC_MASK = 0x40
|
|
||||||
.equ LCD_CONTROLBYTE_CO_MASK = 0x80
|
|
||||||
|
|
||||||
.equ LCD_TWI_ADDRESS = 0x3c
|
.equ LCD_TWI_ADDRESS = 0x3c
|
||||||
|
|
||||||
.equ LCD_WIDTH = 128
|
.equ LCD_WIDTH = 128
|
||||||
.equ LCD_HEIGHT = 64
|
.equ LCD_HEIGHT = 64
|
||||||
|
|
||||||
.equ LCD_PAGE_COUNT = 8
|
.equ LCD_PAGE_COUNT = 8
|
||||||
.equ LCD_MULTIPLE = 2
|
|
||||||
.equ LCD_CMD_MODE = 0x00
|
.equ LCD_CMD_MODE = 0x00
|
||||||
.equ LCD_DATA_MODE = 0x40
|
.equ LCD_DATA_MODE = 0x40
|
||||||
|
|
||||||
@@ -53,10 +54,16 @@ lcdDataEnd:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
LCD_Init:
|
; ---------------------------------------------------------------------------
|
||||||
sbi DDRA, PORTA2 ; debug
|
; LCD_Init
|
||||||
sbi PORTA, PORTA2 ; debug (off)
|
;
|
||||||
|
; IN:
|
||||||
|
; - nothing
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, clear on error
|
||||||
|
; USED:
|
||||||
|
|
||||||
|
LCD_Init:
|
||||||
ldi zl, LOW(lcdInitCommandsBegin)
|
ldi zl, LOW(lcdInitCommandsBegin)
|
||||||
ldi zh, HIGH(lcdInitCommandsBegin)
|
ldi zh, HIGH(lcdInitCommandsBegin)
|
||||||
ldi r16, 8
|
ldi r16, 8
|
||||||
@@ -71,92 +78,50 @@ LCD_Init:
|
|||||||
ldi r16, 0
|
ldi r16, 0
|
||||||
rcall LCD_Fill
|
rcall LCD_Fill
|
||||||
|
|
||||||
ldi r18, 0
|
ldi r18, 20
|
||||||
ldi r19, 0
|
ldi r19, 0
|
||||||
rcall LCD_SetCursor
|
rcall LCD_SetCursor
|
||||||
|
|
||||||
ldi zl, LOW(lcdHelloMsg1)
|
ldi zl, LOW(lcdHelloMsg)
|
||||||
ldi zh, HIGH(lcdHelloMsg1)
|
ldi zh, HIGH(lcdHelloMsg)
|
||||||
rcall LCD_PrintFromFlash
|
rcall LCD_PrintFromFlash
|
||||||
|
|
||||||
ldi r18, 0
|
|
||||||
ldi r19, 2
|
|
||||||
rcall LCD_SetCursor
|
|
||||||
|
|
||||||
ldi zl, LOW(lcdHelloMsg2)
|
|
||||||
ldi zh, HIGH(lcdHelloMsg2)
|
|
||||||
rcall LCD_PrintFromFlash
|
|
||||||
|
|
||||||
ldi r18, 0
|
|
||||||
ldi r19, 4
|
|
||||||
rcall LCD_SetCursor
|
|
||||||
|
|
||||||
ldi zl, LOW(lcdHelloMsg3)
|
|
||||||
ldi zh, HIGH(lcdHelloMsg3)
|
|
||||||
rcall LCD_PrintFromFlash
|
|
||||||
|
|
||||||
ldi r18, 10
|
|
||||||
ldi r19, 5
|
|
||||||
rcall LCD_SetCursor
|
|
||||||
|
|
||||||
ldi zl, LOW(lcdHelloMsg4)
|
|
||||||
ldi zh, HIGH(lcdHelloMsg4)
|
|
||||||
rcall LCD_PrintFromFlash
|
|
||||||
|
|
||||||
|
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; LCD_Fini
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - nothing
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, clear on error
|
||||||
|
; USED:
|
||||||
|
|
||||||
; - R16: number of bytes to send
|
LCD_Fini:
|
||||||
; - Z=pointer to data
|
|
||||||
lcdWriteCommandsFromFlash:
|
|
||||||
rcall twiStart
|
|
||||||
lsl zl
|
|
||||||
rol zh
|
|
||||||
mov r20, r16 ; number of bytes
|
|
||||||
ldi r16, (LCD_TWI_ADDRESS*2)
|
|
||||||
rcall twiSendByte
|
|
||||||
brcc lcdWriteCommandsFromFlash_error
|
|
||||||
tst r16
|
|
||||||
brne lcdWriteCommandsFromFlash_error
|
|
||||||
|
|
||||||
lcdWriteCommandsFromFlash_loop:
|
|
||||||
lpm r16, z+
|
|
||||||
rcall twiSendByte
|
|
||||||
brcc lcdWriteCommandsFromFlash_error
|
|
||||||
tst r16
|
|
||||||
brne lcdWriteCommandsFromFlash_error
|
|
||||||
dec r20
|
|
||||||
brne lcdWriteCommandsFromFlash_loop
|
|
||||||
rcall twiStop
|
|
||||||
sbi DDRA, PORTA2 ; debug
|
|
||||||
cbi PORTA, PORTA2 ; debug (on)
|
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
|
|
||||||
lcdWriteCommandsFromFlash_error:
|
|
||||||
rcall twiStop
|
|
||||||
clc
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; LCD_SetCursor
|
; LCD_SetCursor
|
||||||
;
|
;
|
||||||
; Set cursor.
|
; Set cursor. X is specified in pixels, Y is specified in character rows (8 pixels).
|
||||||
|
; Left upper corner is 0/0 (x/y), right lower corner is 127/7
|
||||||
;
|
;
|
||||||
; IN:
|
; IN:
|
||||||
; - R18: X
|
; - R18: X
|
||||||
; - R19: Y
|
; - R19: Y
|
||||||
; OUT:
|
; OUT:
|
||||||
; - nothing
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
; REGS: r1, r2, r16 (R16, R17, R18, R22)
|
; REGS: r1, r2, r16 (R16, R17, R18, R22)
|
||||||
|
|
||||||
LCD_SetCursor:
|
LCD_SetCursor:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
mov r1, r18
|
mov r1, r18
|
||||||
mov r2, r19
|
mov r2, r19
|
||||||
rcall twiStart ; (R22)
|
rcall twiStart ; (R22)
|
||||||
@@ -184,17 +149,31 @@ LCD_SetCursor:
|
|||||||
brcc LCD_SetCursor_error
|
brcc LCD_SetCursor_error
|
||||||
|
|
||||||
rcall twiStop ; (R22)
|
rcall twiStop ; (R22)
|
||||||
|
out SREG, r15
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
LCD_SetCursor_error:
|
LCD_SetCursor_error:
|
||||||
rcall twiStop ; (R22)
|
rcall twiStop ; (R22)
|
||||||
|
out SREG, r15
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; LCD_Fill
|
||||||
|
;
|
||||||
|
; Fill display RAM with the given value.
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
; - R16: data to write
|
; - R16: data to write
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
|
; REGS: r15, r16, r18, r19, r20, r21 (r17, r22)
|
||||||
|
|
||||||
LCD_Fill:
|
LCD_Fill:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
mov r20, r16
|
mov r20, r16
|
||||||
|
|
||||||
ldi r21, 0 ; Y
|
ldi r21, 0 ; Y
|
||||||
@@ -206,10 +185,10 @@ LCD_Fill_loopY:
|
|||||||
|
|
||||||
rcall twiStart
|
rcall twiStart
|
||||||
ldi r16, (LCD_TWI_ADDRESS*2)
|
ldi r16, (LCD_TWI_ADDRESS*2)
|
||||||
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
brcc LCD_Fill_error
|
brcc LCD_Fill_error
|
||||||
ldi r16, LCD_DATA_MODE
|
ldi r16, LCD_DATA_MODE
|
||||||
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
brcc LCD_Fill_error
|
brcc LCD_Fill_error
|
||||||
|
|
||||||
ldi r19, 0
|
ldi r19, 0
|
||||||
@@ -225,14 +204,17 @@ LCD_Fill_loopX:
|
|||||||
inc r21
|
inc r21
|
||||||
cpi r21, LCD_PAGE_COUNT
|
cpi r21, LCD_PAGE_COUNT
|
||||||
brcs LCD_Fill_loopY
|
brcs LCD_Fill_loopY
|
||||||
|
out SREG, r15
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
LCD_Fill_error:
|
LCD_Fill_error:
|
||||||
rcall twiStop
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; LCD_PrintFromFlash
|
; LCD_PrintFromFlash
|
||||||
;
|
;
|
||||||
@@ -242,8 +224,11 @@ LCD_Fill_error:
|
|||||||
; - Z: position of string to print
|
; - Z: position of string to print
|
||||||
; OUT:
|
; OUT:
|
||||||
; - CFLAG: set if okay, cleared otherwise
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
; REGS:
|
; REGS: r15, r16, Z (R17, R18, R22)
|
||||||
|
|
||||||
LCD_PrintFromFlash:
|
LCD_PrintFromFlash:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
lsl zl
|
lsl zl
|
||||||
rol zh
|
rol zh
|
||||||
rcall twiStart
|
rcall twiStart
|
||||||
@@ -267,11 +252,13 @@ LCD_PrintFromFlash_loop:
|
|||||||
rjmp LCD_PrintFromFlash_loop
|
rjmp LCD_PrintFromFlash_loop
|
||||||
LCD_PrintFromFlash_end:
|
LCD_PrintFromFlash_end:
|
||||||
rcall twiStop
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
|
|
||||||
LCD_PrintFromFlash_error:
|
LCD_PrintFromFlash_error:
|
||||||
rcall twiStop
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@@ -285,8 +272,11 @@ LCD_PrintFromFlash_error:
|
|||||||
; IN:
|
; IN:
|
||||||
; - R16: char
|
; - R16: char
|
||||||
; OUT:
|
; OUT:
|
||||||
; REGS: r16, r17, Z
|
; REGS: r15, r16, r17, Z
|
||||||
|
|
||||||
LCD_PrintChar:
|
LCD_PrintChar:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
rcall twiStart
|
rcall twiStart
|
||||||
ldi r16, (LCD_TWI_ADDRESS*2)
|
ldi r16, (LCD_TWI_ADDRESS*2)
|
||||||
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
@@ -298,10 +288,207 @@ LCD_PrintChar:
|
|||||||
rcall lcdPrintOneChar
|
rcall lcdPrintOneChar
|
||||||
brcc LCD_PrintChar_error
|
brcc LCD_PrintChar_error
|
||||||
rcall twiStop
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
LCD_PrintChar_error:
|
||||||
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; LCD_PrintHexByte
|
||||||
|
;
|
||||||
|
; Convert a give byte into HEX and write it to the current position.
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - R16: byte to convert to hex
|
||||||
|
; OUT:
|
||||||
|
; REGS: r15, r16, r17, Z
|
||||||
|
|
||||||
|
LCD_PrintHexByte:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
|
mov r20, r16
|
||||||
|
rcall twiStart
|
||||||
|
ldi r16, (LCD_TWI_ADDRESS*2)
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc LCD_PrintHexByte_error
|
||||||
|
ldi r16, LCD_DATA_MODE
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc LCD_PrintHexByte_error
|
||||||
|
mov r16, r20
|
||||||
|
rcall lcdPrintHexByte
|
||||||
|
brcc LCD_PrintHexByte_error
|
||||||
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
LCD_PrintHexByte_error:
|
||||||
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; LCD_PrintHexWord
|
||||||
|
;
|
||||||
|
; Convert a give word into HEX and write it to the current position.
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - r18: low byte of the word
|
||||||
|
; - r19: high byte of the word
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
|
; REGS: r15, r16, r17, Z
|
||||||
|
|
||||||
|
LCD_PrintHexWord:
|
||||||
|
in r15, SREG
|
||||||
|
cli
|
||||||
|
push r18
|
||||||
|
push r19
|
||||||
|
rcall twiStart
|
||||||
|
ldi r16, (LCD_TWI_ADDRESS*2)
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc LCD_PrintHexWord_error
|
||||||
|
ldi r16, LCD_DATA_MODE
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc LCD_PrintHexWord_error
|
||||||
|
pop r19
|
||||||
|
pop r18
|
||||||
|
|
||||||
|
rcall lcdPrintHexWord
|
||||||
|
brcc LCD_PrintHexWord_error
|
||||||
|
rcall twiStop
|
||||||
|
out SREG, r15
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
LCD_PrintHexWord_error:
|
||||||
|
rcall twiStop
|
||||||
|
pop r19
|
||||||
|
pop r18
|
||||||
|
out SREG, r15
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; lcdPrintHexWord
|
||||||
|
;
|
||||||
|
; Convert a give word into HEX and write it to the current position.
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - r18: low byte of the word
|
||||||
|
; - r19: high byte of the word
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
|
|
||||||
|
lcdPrintHexWord:
|
||||||
|
mov r16, r19
|
||||||
|
push r18
|
||||||
|
rcall lcdPrintHexByte
|
||||||
|
pop r18
|
||||||
|
brcc lcdPrintHexWord_error
|
||||||
|
mov r16, r18
|
||||||
|
rcall lcdPrintHexByte
|
||||||
|
brcc lcdPrintHexWord_error
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
lcdPrintHexWord_error:
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; lcdPrintHexByte
|
||||||
|
;
|
||||||
|
; Convert a give byte into HEX and write it to the current position.
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - R16: byte to convert to hex
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
|
; REGS: r16, r20 (r16, r17)
|
||||||
|
|
||||||
|
lcdPrintHexByte:
|
||||||
|
mov r20, r16
|
||||||
|
swap r16
|
||||||
|
rcall lcdNibbleToAscii ; write high nibble (r16, r17)
|
||||||
|
rcall lcdPrintOneChar ; (r16, r17, Z)
|
||||||
|
brcc lcdPrintHexByte_error
|
||||||
|
mov r16, r20
|
||||||
|
rcall lcdNibbleToAscii ; write low nibble
|
||||||
|
rcall lcdPrintOneChar
|
||||||
|
brcc lcdPrintHexByte_error
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
lcdPrintHexByte_error:
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; lcdNibbleToAscii
|
||||||
|
;
|
||||||
|
; Convert a nibble to an ASCII char.
|
||||||
|
; IN:
|
||||||
|
; - R16: byte (in bits 0-3)
|
||||||
|
; OUT:
|
||||||
|
; - R16: ASCII representation of that nibble (e.g. '0' for 0)
|
||||||
|
; REGS: r16, r17
|
||||||
|
|
||||||
|
lcdNibbleToAscii:
|
||||||
|
andi r16, 0xf
|
||||||
|
cpi r16, 10
|
||||||
|
brcs lcdNibbleToAscii_l1
|
||||||
|
ldi r17, 7
|
||||||
|
add r16, r17
|
||||||
|
lcdNibbleToAscii_l1:
|
||||||
|
ldi r17, '0'
|
||||||
|
add r16, r17
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; lcdWriteCommandsFromFlash
|
||||||
|
;
|
||||||
|
; IN:
|
||||||
|
; - R16: number of bytes to send
|
||||||
|
; - Z=pointer to data
|
||||||
|
; OUT:
|
||||||
|
; - CFLAG: set if okay, cleared otherwise
|
||||||
|
|
||||||
|
; REGS: r16, r20, Z (r17, r18, r22)
|
||||||
|
|
||||||
|
lcdWriteCommandsFromFlash:
|
||||||
|
rcall twiStart
|
||||||
|
lsl zl
|
||||||
|
rol zh
|
||||||
|
mov r20, r16 ; number of bytes
|
||||||
|
ldi r16, (LCD_TWI_ADDRESS*2)
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc lcdWriteCommandsFromFlash_error
|
||||||
|
|
||||||
|
lcdWriteCommandsFromFlash_loop:
|
||||||
|
lpm r16, z+
|
||||||
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
|
brcc lcdWriteCommandsFromFlash_error
|
||||||
|
dec r20
|
||||||
|
brne lcdWriteCommandsFromFlash_loop
|
||||||
|
rcall twiStop ; (R22)
|
||||||
sec
|
sec
|
||||||
ret
|
ret
|
||||||
|
|
||||||
LCD_PrintChar_error:
|
lcdWriteCommandsFromFlash_error:
|
||||||
rcall twiStop
|
rcall twiStop
|
||||||
clc
|
clc
|
||||||
ret
|
ret
|
||||||
@@ -316,10 +503,10 @@ LCD_PrintChar_error:
|
|||||||
; IN:
|
; IN:
|
||||||
; - R16: char
|
; - R16: char
|
||||||
; OUT:
|
; OUT:
|
||||||
; REGS: r16, r17, Z
|
; REGS: r16, r19, Z (R17, R18, R22)
|
||||||
|
|
||||||
lcdPrintOneChar:
|
lcdPrintOneChar:
|
||||||
rcall lcdGetCharMatrix
|
rcall lcdGetCharMatrix ; (r16, r17, Z)
|
||||||
ldi r16, 0 ; spacing between chars
|
ldi r16, 0 ; spacing between chars
|
||||||
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
rcall twiSendByteExpectAck ; (R16, R17, R18, R22)
|
||||||
brcc lcdPrintOneChar_error
|
brcc lcdPrintOneChar_error
|
||||||
@@ -348,6 +535,7 @@ lcdPrintOneChar_error:
|
|||||||
; OUT:
|
; OUT:
|
||||||
; - Z: pos of character matrix (ready for LPM)
|
; - Z: pos of character matrix (ready for LPM)
|
||||||
; REGS: r16, r17, Z
|
; REGS: r16, r17, Z
|
||||||
|
|
||||||
lcdGetCharMatrix:
|
lcdGetCharMatrix:
|
||||||
cpi r16, 95+32
|
cpi r16, 95+32
|
||||||
brcc lcdGetCharMatrix_l1
|
brcc lcdGetCharMatrix_l1
|
||||||
@@ -378,17 +566,12 @@ lcdGetCharMatrix_l2:
|
|||||||
lcdInitCommandsBegin: ; 28 bytes
|
lcdInitCommandsBegin: ; 28 bytes
|
||||||
.db LCD_CMD_MODE, 0xa8, ((LCD_PAGE_COUNT*8)-1), 0x8d, 0x14, 0xaf, 0xa1, 0xc8
|
.db LCD_CMD_MODE, 0xa8, ((LCD_PAGE_COUNT*8)-1), 0x8d, 0x14, 0xaf, 0xa1, 0xc8
|
||||||
lcdInitCommandsEnd:
|
lcdInitCommandsEnd:
|
||||||
.db 0xae, 0x00, 0x10, 0x40, 0x81, 0xcf, 0xa1, 0xc8
|
|
||||||
.db 0xa6, 0xa8, 0x3f, 0xd3, 0x00, 0xd5, 0x80, 0xd9
|
|
||||||
.db 0xf1, 0xda, 0x12, 0xdb, 0x40, 0x20, 0x02, 0x8d
|
|
||||||
.db 0x14, 0xa4, 0xa6, 0xaf
|
|
||||||
|
|
||||||
lcdHelloMsg1: .db "ILD :-)", 0
|
lcdHelloMsg: .db "AqHOME 2023", 0
|
||||||
;lcdHelloMsg2: .db "1234567890ABCDEFGH", 0, 0
|
|
||||||
lcdHelloMsg2: .db "ICH LIEBE DICH!", 0
|
|
||||||
lcdHelloMsg3: .db "abcdefghijklmnopqr", 0, 0
|
|
||||||
lcdHelloMsg4: .db "abcde", 0
|
|
||||||
|
|
||||||
|
|
||||||
|
; font taken from Tiny4kOLED (https://github.com/datacute/Tiny4kOLED/tree/master/src) by Stephen Denne (MIT license),
|
||||||
|
; original by Neven Boyanov
|
||||||
lcdFont6x8:
|
lcdFont6x8:
|
||||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; 0
|
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; 0
|
||||||
.db 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 ; ! 1
|
.db 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 ; ! 1
|
||||||
|
|||||||
Reference in New Issue
Block a user