Ответ: Там все в порядке, процедура работает, но иногда попадает на выполнение условия DDR_LCD != 0x4f
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено bookevg 30 апреля 2004 г. 17:04
В ответ на: И ещё надо посмотреть ассемблерный код. Возможно if ( DDR_LCD_DATA != 0x4f ) (+) отправлено Mebius 30 апреля 2004 г. 16:52

162 void LcdDataWrite (unsigned char u8Data)
\ LcdDataWrite:
163 {
\ 00000000 938A ST -Y,R24
\ 00000002 2F80 MOV R24,R16
164 LcdWaitBusy(); /* wait until LCD not busy */
\ 00000004 .... RCALL LcdWaitBusy
165 LCD_DI = 1; /* Data mode */
\ 00000006 9AAA SBI 0x15,0x02
166 LCD_RW = 0; /* write mode */
\ 00000008 98A9 CBI 0x15,0x01
167
168 LCD_DATA= u8Data; /* outbyte */
\ 0000000A BB8B OUT 0x1B,R24
169
170 LCD_E = 1; /* Strobe */
\ 0000000C 9AA8 SBI 0x15,0x00
171 LcdDelay(16);
\ 0000000E E100 LDI R16,16
\ 00000010 E010 LDI R17,0
\ 00000012 E020 LDI R18,0
\ 00000014 E030 LDI R19,0
\ 00000016 .... RCALL LcdDelay
172 LCD_E = 0;
\ 00000018 98A8 CBI 0x15,0x00
173 LcdDelay(50);
\ 0000001A E302 LDI R16,50
\ 0000001C E010 LDI R17,0
\ 0000001E E020 LDI R18,0
\ 00000020 E030 LDI R19,0
\ 00000022 .... RCALL LcdDelay
174 }
\ 00000024 9189 LD R24,Y+
\ 00000026 9508 RET

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru