Radic znakoveho LCD SPLC780D

Jan Waclawek konfera na efton.sk
Středa Srpen 4 18:41:42 CEST 2010


>Potrebuji ho rozchodit ve 4 bitovem rezimu na ATmega32 na portu D. Mam 
>trosicku prehazene datove piny (potreboval jsem PD6 volny na neco 
>jineho), takze jsem hledal knihovnu kde se daji definovat pozice 
>jednotlivych pinu libovolne. Pouzil jsem knihovnu z 
>http://www.nongnu.org/avr-libc/user-manual/group__stdiodemo.html

V defines.h je nasledovny komentar:
/* The data bits have to be in ascending order. */
Myslis si, ze to tam autor napisal len tak zo srandy?

>Vse zda se chodi (MCU se nekousne, takze LCD pravdepodobne odpovida). 

Nemusi. Staci, ak nespravnym citanim sa procesoru zda, ze je busy flag vzdy ne-busy.

Takze pekne si sadni a v hd44780.c prepis hd44780_outnibble() a hd44780_innibble() tak, aby zapisovali/citali na Tvoje bity. Pokojne sa vys*r na symboly a napis to polopatisticky, napr. (neviem ako to mas naozaj zapojene), t.j. namiesto
  x = (HD44780_PORTOUT & ~HD44780_DATABITS) | ((n << HD44780_D4) & HD44780_DATABITS);
  HD44780_PORTOUT = x;
napis
  x = HD44780_PORTOUT & 01000111b;
  if (n & 0b00000001) x |= 0b00001000;
  if (n & 0b00000010) x |= 0b00010000;
  if (n & 0b00000100) x |= 0b00100000;
  if (n & 0b00001000) x |= 0b10000000;
  HD44780_PORTOUT = x;

innibble() uz nechavam na Teba.

>
>Aby toho nebylo malo, tak me zlobi debugovani v AVR studiu (posledni 
>release s aktualnim WinAVR).

Mozno na toto existuje aj nejaka jednoducha odpoved, ale ak mam byt k Tebe uprimny, zahod AVRStudio (ktore ma aj tak otrasny editor a spustu inych much) a OCD, a nauc sa debugovat bez tychto barliciek. Snad aspon jednu LEDku tam mas, a mozno aj nejaky log. analyzator alebo seriove pripojenie. Na zaciatku to mozno bude trocha tazsie, ale uver mi, ze ked pride na naozajstne programy s naozajstnymi bugmi, tak debugger nepomoze o nic viac nez ta LEDka, tak si to aspon nacvicis.

Aha, a nauc sa citat assembler (.lss).

wek



More information about the Hw-list mailing list