Hej!
Har ett STK300 kort med en ATmega128 på. Använder AVR studio v.4.14.589 och AVR GCC 20080610. Till kortet har jag kopplat en display enl. 4-bitars överföring. Dvs, PORTA används endast. kontrast, gnd och vcc hämtas separat från LCD porten på kortet.
Har kopplat allt exakt som länken visar här(Interface using the 4-bit Mode):
http://homepage.hispeed.ch/peterfleury/ ... 44780.html
Har använt koden från samma sida(lcdlibrary.zip) och den kompileras felfritt.
Nu till själv problemet, det blir inga tecken på displayen. Jag har mha av LED:sen på kortet kommit fram till att programet hänger sig när det kör funktionen lcd_waitbusy() under lcd_init().
LCD:en initieras till en viss grad då den blinkar till och fyller båda raderna med halv-grå block.
Jag har svårt att tro att det är koden det är fel på, vad kan det vara för annat fel?
[/i][/url]
LCD problem. STK300 ATmega128
- Schnegelwerfer
- Inlägg: 1863
- Blev medlem: 8 november 2004, 13:46:56
Jag har använt detta LCD-lib och det har fungerat bra.
Det som får ditt program att hänga sig i lcd_waitbusy() är att du inte kan läsa från LCDn, d.v.s. du fastnar i while-satsen.
Jag skulle kolla upp portdefinitionerna för LCDn, antagligen ligger felet där.
Kod: Markera allt
static uint8_t lcd_waitbusy(void)
{
register uint8_t c;
/* wait until busy flag is cleared */
while ( (c=lcd_read(0)) & (1<<LCD_BUSY)) {}
/* the address counter is updated 4us after the busy flag is cleared */
delay(2);
/* now read the address counter */
return (lcd_read(0)); // return address counter
}/* lcd_waitbusy */
Jag skulle kolla upp portdefinitionerna för LCDn, antagligen ligger felet där.