@.CharSet=CP1251
@GNU AS

.syntax unified     @ синтаксис исходного кода
.thumb              @ тип используемых инструкций Thumb
.cpu cortex-m4      @ процессор
.fpu fpv4-sp-d16    @ сопроцессор


@ +-----------------------------------------------------------------------+
@ |            Демо проект работы с SPI дисплеем на ILI9341               |
@ +-----------------------------------------------------------------------+
@ | MCU: STM32F401CCx (BlackPill)                                         |
@ | LCD: ILI9341, SPI, 320х240                                            |
@ +-----------------------------------------------------------------------+
@ | Подключение дисплея смотрите в файле src\periph\gpio\gpio_b_conf.inc  |
@ +-----------------------------------------------------------------------+

.section .asmcode

@ основная программа
.global Start
Start:              @ поместите код своей программы ниже
                    BL              SYSCLK84_START
                    BL              SYSTICK_START

.INCLUDE       "/src/periph/gpio/rcc_ahb1enr_gpio_set.inc"    @ настройка тактирования GPIO
.INCLUDE       "/src/periph/gpio/gpio_b_conf.inc"             @ настройка пинов GPIO_B

                    BL              LCD_INIT    @ инициализация ILI9341

                    @ заливка экрана черным цветом
                    MOV             R1, 0x0000        @ цвет заливки: черный
                    MOV             R2, 319      @ y_Start=0,  y_End=239
                    MOV             R3, 239      @ x_Start=0,  x_End=319
                    BL              LCD_FILLRECT


                    @ печать одного символа по заданным координатам
                    MOV             R0, 10    @ Y
                    MOV             R1, 50    @ X
                    LDR             R2, = 0xFFFF0000
                    MOV             R3, 'Ы'
                    BL              LCD_CHAR_24x32

                    @ печать строки
                    ADR             R4, TEST_TEXT
                    BL              LCD_PUTSTR

                    ADR             R4, TEST1_TEXT
                    BL              LCD_PUTSTR


MAIN_LOOP:          B    MAIN_LOOP

TEST_TEXT:          .BYTE           0x01
                    .SHORT          40    @ Y
                    .SHORT          10    @ X
                    .WORD           0xFFFF0000    @ Color
                    .ASCIZ          "Тестовый текст"

TEST1_TEXT:          .BYTE           0x01
                    .SHORT          60    @ Y
                    .SHORT          10    @ X
                    .WORD           0x00FFFF00    @ Color
                    .ASCIZ          "Инверсия"



