Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
lsr r3, r0, #3
mov r4, #48
mla r3, r4, r3, r1
movw r1, #(48/8*84)
cmp r3, r1
blt 1f
ldrb r1, [r3]
ror r1, r1, r0
rsb r0, r0, #0
bfi r1, r2, #0, #1
ror r1, r1, r0
strb r1, [r3]
.global LCD_PIXEL
LCD_PIXEL:
CMP R0, 48 @ проверим допустимость координат
BPL LCD_PIXEL_exit
CMP R1, 84
BPL LCD_PIXEL_exit
PUSH {R1, R3, R4}
@ вычисляем адрес пиксела
LDR R3, =LCD_BUFF
ADD R3, R3, R1 @ ADR + x
LSR R1, R0, 3 @ y >> 3
MOV R4, 84 @
MLA R3, R1, R4, R3 @ R3=(y>>3)*84+ADR+x
LDRB R1, [R3] @ читаем байт бита
@ новый вариант наложения маски символа (1 - ставим, 0 - стираем)
AND R4, R0, 0x07
ROR R1, R1, R4
RSB R4, R4, 32
BFI R1, R2, 0, 1
ROR R1, R1, R4
STRB R1, [R3] @ запись в буфер
POP {R1, R3, R4}
LCD_PIXEL_exit:
BX LR
STM32F4: GNU AS: Подключение дисплея на PCD8544 (Часть 7)