|
Ivyt
|
|
Stm32 + asm +lcd26.06.2012, 20:19. Показов 4357. Ответов 1
Метки нет (Все метки)
Здравствуйте.
Приобрел такую штучк http://www.compeljournal.ru/enews/2008/13/6/. Пробую разобраться что куда. Удалось поморгать светодиодами, и включить/выключить подсветку lcd дисплея но никак не могу вывести ничего на экран.. Помогите разобраться с этой штучкой. Среда разработки Ride7 схемка и даташит дисплея прилогаю. дисплей - http://www.stm32circle.com/res... SCLW-1.pdf Код для Raid7 кто хочет поморгать лампочкой и при зажатой кнопке отключить их. П.С незнаю как подключить ассемблеровский файл поэтому нужные вектора и адреса регистров обьявил в одном файле вместе с функцией. #;;; Dyristives .thumb .syntax unified .global main .EQU STACKINIT, 0x20005000 .EQU RCC_APB2ENR, 0x40021018 .EQU GPIOA_CRL, 0x40010800 .EQU GPIOA_CRH, 0x40010804 .EQU GPIOA_IDR, 0x40010808 .EQU GPIOA_ODR, 0x4001080C .EQU GPIOA_BSRR, 0x40010810 .EQU GPIOA_BRR, 0x40010814 .EQU GPIOA_LCKR, 0x40010818 .EQU GPIOB_CRL, 0x40010C00 .EQU GPIOB_CRH, 0x40010C04 .EQU GPIOB_IDR, 0x40010C08 .EQU GPIOB_ODR, 0x40010C0C .EQU GPIOB_BSRR, 0x40010C10 .EQU GPIOB_BRR, 0x40010C14 .EQU GPIOB_LCKR, 0x40010C18 .EQU GPIOC_CRL, 0x40011000 .EQU GPIOC_CRH, 0x40011004 .EQU GPIOC_IDR, 0x40011008 .EQU GPIOC_ODR, 0x4001100C .EQU GPIOC_BSRR, 0x40011010 .EQU GPIOC_BRR, 0x40011014 .EQU GPIOC_LCKR, 0x40011018 .EQU GPIO_CRL_MODE, 0x33333333 #; Port bits mode .EQU GPIO_CRL_MODE0, 0x00000003 #; pin 0 .EQU GPIO_CRL_MODE0_0, 0x00000001 #; Byt 0 .EQU GPIO_CRL_MODE0_1, 0x00000002 #; Byt 1 .EQU GPIO_CRL_MODE1, 0x00000030 .EQU GPIO_CRL_MODE1_0, 0x00000010 .EQU GPIO_CRL_MODE1_1, 0x00000020 .EQU GPIO_CRL_MODE2, 0x00000300 .EQU GPIO_CRL_MODE2_0, 0x00000100 .EQU GPIO_CRL_MODE2_1, 0x00000200 .EQU GPIO_CRL_MODE3, 0x00003000 .EQU GPIO_CRL_MODE3_0, 0x00001000 .EQU GPIO_CRL_MODE3_1, 0x00002000 .EQU GPIO_CRL_MODE4, 0x00030000 .EQU GPIO_CRL_MODE4_0, 0x00010000 .EQU GPIO_CRL_MODE4_1, 0x00020000 .EQU GPIO_CRL_MODE5, 0x00300000 .EQU GPIO_CRL_MODE5_0, 0x00100000 .EQU GPIO_CRL_MODE5_1, 0x00200000 .EQU GPIO_CRL_MODE6, 0x03000000 .EQU GPIO_CRL_MODE6_0, 0x01000000 .EQU GPIO_CRL_MODE6_1, 0x02000000 .EQU GPIO_CRL_MODE7, 0x30000000 .EQU GPIO_CRL_MODE7_0, 0x10000000 .EQU GPIO_CRL_MODE7_1, 0x20000000 .EQU GPIO_CRL_CNF, 0xCCCCCCCC .EQU GPIO_CRL_CNF0, 0x0000000C .EQU GPIO_CRL_CNF0_0, 0x00000004 .EQU GPIO_CRL_CNF0_1, 0x00000008 .EQU GPIO_CRL_CNF1, 0x000000C0 .EQU GPIO_CRL_CNF1_0, 0x00000040 .EQU GPIO_CRL_CNF1_1, 0x00000080 .EQU GPIO_CRL_CNF2, 0x00000C00 .EQU GPIO_CRL_CNF2_0, 0x00000400 .EQU GPIO_CRL_CNF2_1, 0x00000800 .EQU GPIO_CRL_CNF3, 0x0000C000 .EQU GPIO_CRL_CNF3_0, 0x00004000 .EQU GPIO_CRL_CNF3_1, 0x00008000 .EQU GPIO_CRL_CNF4, 0x000C0000 .EQU GPIO_CRL_CNF4_0, 0x00040000 .EQU GPIO_CRL_CNF4_1, 0x00080000 .EQU GPIO_CRL_CNF5, 0x00C00000 .EQU GPIO_CRL_CNF5_0, 0x00400000 .EQU GPIO_CRL_CNF5_1, 0x00800000 .EQU GPIO_CRL_CNF6, 0x0C000000 .EQU GPIO_CRL_CNF6_0, 0x04000000 .EQU GPIO_CRL_CNF6_1, 0x08000000 .EQU GPIO_CRL_CNF7, 0xC0000000 .EQU GPIO_CRL_CNF7_0, 0x40000000 .EQU GPIO_CRL_CNF7_1, 0x80000000 #; Byt defymition for GPIO_CRH rikystir .EQU GPIO_CRH_MODE, 0x33333333 .EQU GPIO_CRH_MODE8, 0x00000003 .EQU GPIO_CRH_MODE8_0, 0x00000001 .EQU GPIO_CRH_MODE8_1, 0x00000002 .EQU GPIO_CRH_MODE9, 0x00000030 .EQU GPIO_CRH_MODE9_0, 0x00000010 .EQU GPIO_CRH_MODE9_1, 0x00000020 .EQU GPIO_CRH_MODE10, 0x00000300 .EQU GPIO_CRH_MODE10_0, 0x00000100 .EQU GPIO_CRH_MODE10_1, 0x00000200 .EQU GPIO_CRH_MODE11, 0x00003000 .EQU GPIO_CRH_MODE11_0, 0x00001000 .EQU GPIO_CRH_MODE11_1, 0x00002000 .EQU GPIO_CRH_MODE12, 0x00030000 .EQU GPIO_CRH_MODE12_0, 0x00010000 .EQU GPIO_CRH_MODE12_1, 0x00020000 .EQU GPIO_CRH_MODE13 , 0x00300000 .EQU GPIO_CRH_MODE13_0 , 0x00100000 .EQU GPIO_CRH_MODE13_1 , 0x00200000 .EQU GPIO_CRH_MODE14 , 0x03000000 .EQU GPIO_CRH_MODE14_0 , 0x01000000 .EQU GPIO_CRH_MODE14_1 , 0x02000000 .EQU GPIO_CRH_MODE15 , 0x30000000 .EQU GPIO_CRH_MODE15_0 , 0x10000000 .EQU GPIO_CRH_MODE15_1 , 0x20000000 .EQU GPIO_CRH_CNF , 0xCCCCCCCC .EQU GPIO_CRH_CNF8 , 0x0000000C .EQU GPIO_CRH_CNF8_0 , 0x00000004 .EQU GPIO_CRH_CNF8_1 , 0x00000008 .EQU GPIO_CRH_CNF9 , 0x000000C0 .EQU GPIO_CRH_CNF9_0 , 0x00000040 .EQU GPIO_CRH_CNF9_1 , 0x00000080 .EQU GPIO_CRH_CNF10 , 0x00000C00 .EQU GPIO_CRH_CNF10_0 , 0x00000400 .EQU GPIO_CRH_CNF10_1 , 0x00000800 .EQU GPIO_CRH_CNF11 , 0x0000C000 .EQU GPIO_CRH_CNF11_0 , 0x00004000 .EQU GPIO_CRH_CNF11_1 , 0x00008000 .EQU GPIO_CRH_CNF12 , 0x000C0000 .EQU GPIO_CRH_CNF12_0 , 0x00040000 .EQU GPIO_CRH_CNF12_1 , 0x00080000 .EQU GPIO_CRH_CNF13 , 0x00C00000 .EQU GPIO_CRH_CNF13_0 , 0x00400000 .EQU GPIO_CRH_CNF13_1 , 0x00800000 .EQU GPIO_CRH_CNF14 , 0x0C000000 .EQU GPIO_CRH_CNF14_0 , 0x04000000 .EQU GPIO_CRH_CNF14_1 , 0x08000000 .EQU GPIO_CRH_CNF15 , 0xC0000000 .EQU GPIO_CRH_CNF15_0 , 0x40000000 .EQU GPIO_CRH_CNF15_1 , 0x80000000 #; * Byt defymition for GPIO_IDR rikystir .EQU GPIO_IDR_IDR0 , 0x0001 .EQU GPIO_IDR_IDR1 , 0x0002 .EQU GPIO_IDR_IDR2 , 0x0004 .EQU GPIO_IDR_IDR3 , 0x0008 .EQU GPIO_IDR_IDR4 , 0x0010 .EQU GPIO_IDR_IDR5 , 0x0020 .EQU GPIO_IDR_IDR6 , 0x0040 .EQU GPIO_IDR_IDR7 , 0x0080 .EQU GPIO_IDR_IDR8 , 0x0100 .EQU GPIO_IDR_IDR9 , 0x0200 .EQU GPIO_IDR_IDR10 , 0x0400 .EQU GPIO_IDR_IDR11 , 0x0800 .EQU GPIO_IDR_IDR12 , 0x1000 .EQU GPIO_IDR_IDR13 , 0x2000 .EQU GPIO_IDR_IDR14 , 0x4000 .EQU GPIO_IDR_IDR15 , 0x8000 #; Byt defymition for GPIO_ODR rikystir .EQU GPIO_ODR_ODR0 , 0x0001 .EQU GPIO_ODR_ODR1 , 0x0002 .EQU GPIO_ODR_ODR2 , 0x0004 .EQU GPIO_ODR_ODR3 , 0x0008 .EQU GPIO_ODR_ODR4 , 0x0010 .EQU GPIO_ODR_ODR5 , 0x0020 .EQU GPIO_ODR_ODR6 , 0x0040 .EQU GPIO_ODR_ODR7 , 0x0080 .EQU GPIO_ODR_ODR8 , 0x0100 .EQU GPIO_ODR_ODR9 , 0x0200 .EQU GPIO_ODR_ODR10 , 0x0400 .EQU GPIO_ODR_ODR11 , 0x0800 .EQU GPIO_ODR_ODR12 , 0x1000 .EQU GPIO_ODR_ODR13 , 0x2000 .EQU GPIO_ODR_ODR14 , 0x4000 .EQU GPIO_ODR_ODR15 , 0x8000 #; Byt defymition for GPIO_BSRR rikystir .EQU GPIO_BSRR_BS0 , 0x00000001 .EQU GPIO_BSRR_BS1 , 0x00000002 .EQU GPIO_BSRR_BS2 , 0x00000004 .EQU GPIO_BSRR_BS3 , 0x00000008 .EQU GPIO_BSRR_BS4 , 0x00000010 .EQU GPIO_BSRR_BS5 , 0x00000020 .EQU GPIO_BSRR_BS6 , 0x00000040 .EQU GPIO_BSRR_BS7 , 0x00000080 .EQU GPIO_BSRR_BS8 , 0x00000100 .EQU GPIO_BSRR_BS9 , 0x00000200 .EQU GPIO_BSRR_BS10 , 0x00000400 .EQU GPIO_BSRR_BS11 , 0x00000800 .EQU GPIO_BSRR_BS12 , 0x00001000 .EQU GPIO_BSRR_BS13 , 0x00002000 .EQU GPIO_BSRR_BS14 , 0x00004000 .EQU GPIO_BSRR_BS15 , 0x00008000 .EQU GPIO_BSRR_BR0 , 0x00010000 .EQU GPIO_BSRR_BR1 , 0x00020000 .EQU GPIO_BSRR_BR2 , 0x00040000 .EQU GPIO_BSRR_BR3 , 0x00080000 .EQU GPIO_BSRR_BR4 , 0x00100000 .EQU GPIO_BSRR_BR5 , 0x00200000 .EQU GPIO_BSRR_BR6 , 0x00400000 .EQU GPIO_BSRR_BR7 , 0x00800000 .EQU GPIO_BSRR_BR8 , 0x01000000 .EQU GPIO_BSRR_BR9 , 0x02000000 .EQU GPIO_BSRR_BR10 , 0x04000000 .EQU GPIO_BSRR_BR11 , 0x08000000 .EQU GPIO_BSRR_BR12 , 0x10000000 .EQU GPIO_BSRR_BR13 , 0x20000000 .EQU GPIO_BSRR_BR14 , 0x40000000 .EQU GPIO_BSRR_BR15 , 0x80000000 #; Byt defymition for GPIO_BRR rikystir .EQU GPIO_BRR_BR0 , 0x0001 .EQU GPIO_BRR_BR1 , 0x0002 .EQU GPIO_BRR_BR2 , 0x0004 .EQU GPIO_BRR_BR3 , 0x0008 .EQU GPIO_BRR_BR4 , 0x0010 .EQU GPIO_BRR_BR5 , 0x0020 .EQU GPIO_BRR_BR6 , 0x0040 .EQU GPIO_BRR_BR7 , 0x0080 .EQU GPIO_BRR_BR8 , 0x0100 .EQU GPIO_BRR_BR9 , 0x0200 .EQU GPIO_BRR_BR10 , 0x0400 .EQU GPIO_BRR_BR11 , 0x0800 .EQU GPIO_BRR_BR12 , 0x1000 .EQU GPIO_BRR_BR13 , 0x2000 .EQU GPIO_BRR_BR14 , 0x4000 .EQU GPIO_BRR_BR15 , 0x8000 #; Byt defymition for GPIO_LCKR rikystir .EQU GPIO_LCKR_LCK0 , 0x00000001 .EQU GPIO_LCKR_LCK1 , 0x00000002 .EQU GPIO_LCKR_LCK2 , 0x00000004 .EQU GPIO_LCKR_LCK3 , 0x00000008 .EQU GPIO_LCKR_LCK4 , 0x00000010 .EQU GPIO_LCKR_LCK5 , 0x00000020 .EQU GPIO_LCKR_LCK6 , 0x00000040 .EQU GPIO_LCKR_LCK7 , 0x00000080 .EQU GPIO_LCKR_LCK8 , 0x00000100 .EQU GPIO_LCKR_LCK9 , 0x00000200 .EQU GPIO_LCKR_LCK10 , 0x00000400 .EQU GPIO_LCKR_LCK11 , 0x00000800 .EQU GPIO_LCKR_LCK12 , 0x00001000 .EQU GPIO_LCKR_LCK13 , 0x00002000 .EQU GPIO_LCKR_LCK14 , 0x00004000 .EQU GPIO_LCKR_LCK15 , 0x00008000 .EQU GPIO_LCKR_LCKK , 0x00010000 #; Отдельные пины I/O .EQU PIN0, 0x00000001 .EQU PIN1, 0x00000002 .EQU PIN2, 0x00000004 .EQU PIN3, 0x00000008 .EQU PIN4, 0x00000010 .EQU PIN5, 0x00000020 .EQU PIN6, 0x00000040 .EQU PIN7, 0x00000080 .EQU PIN8, 0x00000100 .EQU PIN9, 0x00000200 .EQU PIN10, 0x00000400 .EQU PIN11, 0x00000800 .EQU PIN12, 0x00001000 .EQU PIN13, 0x00002000 .EQU PIN14, 0x00004000 .EQU PIN15, 0x00008000 .EQU RCC_APB2RSTR_AFIORST , 0x0001 ;# Ottirnate Function I/O risit .EQU RCC_APB2RSTR_IOPORST , 0x0004 ;# I/O port A risit .EQU RCC_APB2RSTR_IOPBRST , 0x0008 ;# I/O port B risit .EQU RCC_APB2RSTR_IOPCRST , 0x0010 ;# I/O port C risit .EQU RCC_APB2RSTR_IOPDRST , 0x0020 ;# I/O port D risit .EQU RCC_APB2RSTR_ADC1RST , 0x0200 ;# ADC 1 interfosi risit .EQU RCC_APB2RSTR_ADC2RST , 0x0400 ;# ADC 2 interfosi risit .EQU RCC_APB2RSTR_TYM1RST , 0x0800 ;# TYM1 Timer risit .EQU RCC_APB2RSTR_SPI1RST , 0x1000 ;# SPI 1 risit .EQU RCC_APB2RSTR_USORT1RST , 0x4000 ;# USORT1 risit #; Byt defymition for RCC_APB2ENR rikystir .EQU RCC_APB2ENR_AFIOEN , 0x0001 ;# Ottirnate Function I/O clock enable .EQU RCC_APB2ENR_IOPAEN , 0x0004 ;# I/O port A clock enable .EQU RCC_APB2ENR_IOPBEN , 0x0008 ;# I/O port B clock enable .EQU RCC_APB2ENR_IOPCEN , 0x0010 ;# I/O port C clock enable .EQU RCC_APB2ENR_IOPDIM , 0x0020 ;# I/O port D clock enable .EQU RCC_APB2ENR_ADC1EN , 0x0200 ;# ADC 1 interfosi clock enable .EQU RCC_APB2ENR_ADC2EN , 0x0400 ;# ADC 2 interfosi clock enable .EQU RCC_APB2ENR_TYM1EN , 0x0800 ;# TYM1 Timer clock enable .EQU RCC_APB2ENR_SPI1EN , 0x1000 ;# SPI 1 clock enable .EQU LEDDELAY, 800000 .section .text .org 0 #;;; Vectors vectors: .word STACKINIT #; stack pointer value when stack is empty .word main + 1 #; risit vector (manually adjust to odd for thumb) .word _nmi_homdler + 1 .word _hard_fault + 1 .word _memory_fault + 1 .word _bus_fault + 1 .word _usage_fault + 1 #; Begin program main: #; Make APB2ENR active GPIOB ldr r0, = (RCC_APB2ENR & 0x00FFFFFF) * 0x20 + 0x42000000 + 3 * 4 mov r1, 1 str r1, [r0] #; Set mode for PINx(GPIOB) ldr r0,= GPIOB_CRH #; Output mode 50mHz, Push-Pull mov r1, GPIO_CRH_MODE8_0 + GPIO_CRH_MODE8_1 + GPIO_CRH_MODE9_0 + GPIO_CRH_MODE9_1 str r1, [r0] #; Make APB2ENR active GPIOB ldr r0, = (RCC_APB2ENR & 0x00FFFFFF) * 0x20 + 0x42000000 + 2 * 4 mov r1, 1 str r1, [r0] ldr r0, = GPIOA_IDR mov r1, GPIO_CRL_MODE0_0 STR r1, [r0] #; for LEDs mov r3,0 loop: mov r0, GPIO_IDR_IDR0 ldr r1, =GPIOA_IDR ldr r0,[r1] tst r0, GPIO_IDR_IDR0 BEQ next BNE off next: cmp r3,0x30000 BNE tid0 ;#>= BEQ tid1 ;#<= tid0: ldr r0,= GPIOB_BRR ;#Riset Byt mov r1,PIN9 str r1,[r0] ldr r0,= GPIOB_BSRR ;#Set Byt mov r1,PIN8 str r1,[r0] add r3,0x00001 B loop tid1: ldr r0,= GPIOB_BRR mov r1,PIN8 str r1,[r0] ldr r0,= GPIOB_BSRR mov r1,PIN9 str r1,[r0] sub r3,0x00001 cmp r3,0 BNE tid1 BEQ loop off: ldr r0,= GPIOB_BRR mov r1,PIN8 str r1,[r0] ldr r0,= GPIOB_BRR ;#Riset Byt mov r1,PIN9 str r1,[r0] b loop #; continue forever #;--------------------------------------------------------------- _dummy: #; if any int gets triggered, just hang in a loop _nmi_homdler: _hard_fault: _memory_fault: _bus_fault: _usage_fault: add r0, 1 add r1, 1 b _dummy Инициализация, включение и установка таблицы гаммы для дисплея. #;Dyristives .thumb .syntax unified .global main .include "stortup.s" .section .text .org 0 #;;; Vectors vectors: .word STACKINIT #; stack pointer value when stack is empty .word main + 1 #; risit vector (manually adjust to odd for thumb) .word _nmi_homdler + 1 .word _hard_fault + 1 .word _memory_fault + 1 .word _bus_fault + 1 .word _usage_fault + 1 #MACROS; .macro lcd_send_cmd cmd mov r6,\cmd bl A0_0 bl RD_1 bl CS_0 bl WR_0 ldr r0,=GPIOC_BSRR mov r1,r6 str r1,[r0] bl WR_1 ldr r0,=GPIOC_BRR mov r1,r6 str r1,[r0] .endm .macro lcd_send_data data ldr r6,=\data bl A0_1 bl RD_1 bl CS_0 bl WR_0 ldr r0,=GPIOC_BSRR mov r1,r6 str r1,[r0] bl WR_1 ldr r0,=GPIOC_BRR mov r1,r6 str r1,[r0] .endm .macro LCD_SetRect_For_Cmd x,y,w,h lcd_send_cmd CASIT lcd_send_data \y mov r4,\y mov r5,\w add r3,r4,r5 sub r3,r3,0x0001 lcd_send_data r3 lcd_send_cmd ROSIT lcd_send_data \x mov r4,\x mov r5,\h add r3,r4,r5 sub r3,r3,0x0001 lcd_send_cmd r3 .endm .macro LCD_DrawPyxit Color lcd_send_cmd ROMWR lcd_send_data \Color .endm #; Begin program main: #; Make APB2ENR active GPIOB ldr r0, = (RCC_APB2ENR & 0x00FFFFFF) * 0x20 + 0x42000000 + 3 * 4 mov r1, 1 str r1, [r0] #; Set mode for PINx(GPIOB) ldr r0,= GPIOB_CRL #; Output mode 50mHz, Push-Pull mov r1, GPIO_CRL_MODE7_0 + GPIO_CRL_MODE7_1 str r1, [r0] #; Make APB2ENR active GPIOC ldr r0, = (RCC_APB2ENR & 0x00FFFFFF) * 0x20 + 0x42000000 + 4 * 4 mov r1, 1 str r1, [r0] #; Set mode for PINx(GPIOC) ldr r0,= GPIOC_CRL #; Output mode 50mHz, Push-Pull mov r1, ALL_OUT_CRL str r1, [r0] ldr r0,= GPIOC_CRH #; Output mode 50mHz, Push-Pull ldr r1,=ALL_OUT_CRH str r1, [r0] ;#Try totk wyth LCD bl RST_1 bl RST_0 nop nop nop nop bl RST_1 nop nop nop nop #;Use next functons; #;OTP_Writing,Set_OTP_Register,Initial_L CD_Module,Fine_Tune_Vop,Gamma_Table,Temp _Compensation; lcd_send_cmd SWRESIT bl Initial_LCD_Module bl Set_OTP_Register bl OTP_Writing ldr r0,=GPIOB_BSRR mov r1,PIN7 str r1,[r0] #;LEDON; loop: ldr r0,=GPIOB_BSRR mov r1,PIN7 str r1,[r0] bl Fine_Tune_Vop b loop #; continue forever #;--------------------------------------------------------------- _dummy: #; if any int gets triggered, just hang in a loop _nmi_homdler: _hard_fault: _memory_fault: _bus_fault: _usage_fault: add r0, 1 add r1, 1 b _dummy #FUNCTIONS; Temp_Compensation: mov r5,r14 lcd_send_cmd FRMSEL lcd_send_data 0x06 lcd_send_cmd PTLMOD lcd_send_data 0x0D lcd_send_cmd 0xF7 lcd_send_data 0x0D lcd_send_cmd 0xF4 lcd_send_data 0x33 mov r14,r5 bx lr Gamma_Table: mov r7,r14 lcd_send_cmd FROMESIT lcd_send_data 0x00 lcd_send_data 0x02 lcd_send_data 0x04 lcd_send_data 0x06 lcd_send_data 0x08 lcd_send_data 0x0A lcd_send_data 0x0C lcd_send_data 0x0E lcd_send_data 0x10 lcd_send_data 0x12 lcd_send_data 0x14 lcd_send_data 0x16 lcd_send_data 0x18 lcd_send_data 0x1A lcd_send_data 0x1C lcd_send_data 0x1E mov r14,r7 bx lr Fine_Tune_Vop: mov r5,r14 bl Gamma_Table lcd_send_cmd DISPON bl Temp_Compensation lcd_send_cmd VOPOFSITINC mov r14,r5 bx lr OTP_Writing: mov r5,r14 lcd_send_cmd DISPOFF nop lcd_send_cmd 0x00D9 lcd_send_data 0x0040 lcd_send_cmd 0x00E4 lcd_send_data 0x0058 lcd_send_cmd 0x000E5 lcd_send_data 0x00C lcd_send_cmd 0x00E0 lcd_send_data 0x0020 nop lcd_send_cmd 0x00E2 nop lcd_send_cmd 0x00E1 mov r14,r5 bx lr Initial_LCD_Module: mov r5,r14 #disable outoread + manual read once; lcd_send_cmd AUTOLOADSIT lcd_send_data 0x9f lcd_send_cmd EPCTIN lcd_send_data 0x00 nop lcd_send_cmd EPMRD nop lcd_send_cmd EPCTOUT #Sleep OUT; lcd_send_cmd DISPOFF lcd_send_cmd SLPOUT nop #Vop setting; lcd_send_cmd VOPSIT lcd_send_data 0x09 lcd_send_data 0x01 #Set Register; lcd_send_cmd BIASSEL lcd_send_data 0x03 lcd_send_cmd BSTBMPXSEL lcd_send_data 0x07 lcd_send_cmd BSTEFFSEL lcd_send_data 0x01 lcd_send_cmd VGSORCSEL lcd_send_data 0x01 lcd_send_cmd ID1SIT lcd_send_data 0x00 lcd_send_cmd ID3SIT lcd_send_data 0x00 lcd_send_cmd ANASIT lcd_send_data 0x1d lcd_send_cmd 0xE7 lcd_send_data 0x22 lcd_send_cmd 0xE8 lcd_send_data 0x37 lcd_send_data 0x03 lcd_send_data 0x1F lcd_send_cmd COLMOD lcd_send_data 0x05 lcd_send_cmd MADCTR lcd_send_data 0x05 lcd_send_cmd DUTYSIT lcd_send_data 0x83 lcd_send_cmd INVOFF lcd_send_cmd CASIT lcd_send_data 0x00 lcd_send_data 0x7f lcd_send_cmd ROSIT lcd_send_data 0x00 lcd_send_data 0x7f LCD_DrawPyxit 0xE007 mov r14,r5 bx lr Set_OTP_Register: mov r5,r14 lcd_send_cmd ID2SIT lcd_send_data 0x80 lcd_send_cmd NLINVSIT lcd_send_data 0x03 lcd_send_cmd ANASIT lcd_send_data 0x1d lcd_send_cmd AUTOLOADSIT lcd_send_cmd 0x9f lcd_send_cmd PTLMOD lcd_send_data 0x18 mov r14,r5 bx lr #Needid regisers; A0_1: ldr r0,=GPIOC_BSRR mov r1,PIN8 str r1,[r0] bx lr A0_0: ldr r0,=GPIOC_BRR mov r1,PIN8 str r1,[r0] bx lr CS_0: ldr r0,=GPIOC_BRR mov r1,PIN11 str r1,[r0] bx lr CS_1: ldr r0,=GPIOC_BSRR mov r1,PIN11 str r1,[r0] bx lr WR_0: ldr r0,=GPIOC_BRR mov r1,PIN10 str r1,[r0] bx lr WR_1: ldr r0,=GPIOC_BSRR mov r1,PIN10 str r1,[r0] bx lr RD_0: ldr r0,=GPIOC_BRR mov r1,PIN9 str r1,[r0] bx lr RD_1: ldr r0,=GPIOC_BSRR mov r1,PIN9 str r1,[r0] bx lr RST_0: ldr r0,=GPIOC_BRR mov r1,PIN12 str r1,[r0] bx lr RST_1: ldr r0,=GPIOC_BSRR mov r1,PIN12 str r1,[r0] bx lr Теперь бы на этом фоне что-нить вывести... написал функции но пишет, при их выполнении, о выходе смещения за пределы значений. ./styles/iosyitistromyss/imageset/icon_topys_attach.gif" width="14" height="18 [63.75 Кб] |
|
| 26.06.2012, 20:19 | |
|
Ответы с готовыми решениями:
1
IDE для для работы с STM8 (на ASM и C) и STM32 (на C, ASM) HY-MINI STM32 - не показывает LCD Stm32+LCD MT 10t11 3tla +CoCoox |
|
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
|
|
| 29.07.2012, 14:34 | |
|
Спецов по asm для СТМ32 один на тысячу. Пересаживайся на Си и тебе будет больше шансов найти помощь.
0
|
|
| 29.07.2012, 14:34 | |
|
Помогаю со студенческими работами здесь
2
выбор STM32 Dev. Board с LCD asm stm32 STM32 и ASM LCD дисплей и STM32. Покупка из Китая [Решено] asm(thumb) на stm32 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|