LCD problem. STK300 ATmega128

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
smille
Inlägg: 7
Blev medlem: 17 juni 2008, 14:12:17
Ort: Göteborg

LCD problem. STK300 ATmega128

Inlägg av smille »

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]
Användarvisningsbild
Schnegelwerfer
Inlägg: 1863
Blev medlem: 8 november 2004, 13:46:56

Inlägg av Schnegelwerfer »

Jag har använt detta LCD-lib och det har fungerat bra.

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 */
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.
smille
Inlägg: 7
Blev medlem: 17 juni 2008, 14:12:17
Ort: Göteborg

Inlägg av smille »

Hittade felet av en ren slump när jag grejjade med en annan sak idag. Hade glömt stänga av ATmega103 kompabilitets-fuse:en. efter det bara att ändra XTAL till 8mhz så fungerar koden klockrent. Tack för hjälpen iaf!
Skriv svar