Problem med Mega32 och display..

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Forsgren
EF Sponsor
Inlägg: 1227
Blev medlem: 24 oktober 2003, 13:45:48
Ort: Orsa

Problem med Mega32 och display..

Inlägg av Forsgren »

Någon som har några ideer om vad som kan vara fel..
Använder lcd-liben som finns här

Blir inga fel under kompilering osv, har modifierat lcd.h så den skall passa min uppkoppling, men även om jag kör med original(dvs felaktig) lcd.h så kommer den inte ur lcd_init()..
kommenterar jag bort funktionsanropet så går allt som det ska..

Kod: Markera allt

//------------------------------------------------------------------------------------
#include <lcd.h>

void init(void)
{
    DDRD=0xFF;


    lcd_init(LCD_DISP_ON);     //Ur lcd_init kommer jag aldrig! 
    //lcd_clrscr();
    PORTD=0x00;

}

int main(void)
{

    uint32_t p;
    //p = 65000;

    init();

    while(1)
    {
        p = 10000;
        while(p--)
        PORTD=0x00;
        
        p = 20000000;
        while(p--)
        PORTD=0xFF;
    }
}
ToS
Inlägg: 3
Blev medlem: 7 mars 2005, 13:32:05
Kontakt:

Inlägg av ToS »

Tittade snabbt i sourcen till lib'et, och i static uint8_t lcd_waitbusy(void)
finns det en potentiell källa. Och den ser ut att anropas i init oxo...

/* wait until busy flag is cleared */
while ( (c=lcd_read(0)) & (1<<LCD_BUSY)) {}

Så du får la kolla vad du har på Busy pinnen....

/Tomas
Användarvisningsbild
Forsgren
EF Sponsor
Inlägg: 1227
Blev medlem: 24 oktober 2003, 13:45:48
Ort: Orsa

Inlägg av Forsgren »

Tack så mycket för tipset! Har inte fått det att funka ännu, men det verkar va nå strul där..
Användarvisningsbild
cykze
EF Sponsor
Inlägg: 1539
Blev medlem: 8 april 2004, 10:40:28
Ort: Uppsala

Inlägg av cykze »

Du skulle kunna ta och posta inställningarna i lcd.h här också.
Användarvisningsbild
Forsgren
EF Sponsor
Inlägg: 1227
Blev medlem: 24 oktober 2003, 13:45:48
Ort: Orsa

Inlägg av Forsgren »

Japp, detta är vad jag gjort ändringar i..

Kod: Markera allt

#define LCD_PORT         PORTC        /**< port for the LCD lines   */
#define LCD_DATA0_PORT   LCD_PORT     /**< port for 4bit data bit 0 */
#define LCD_DATA1_PORT   LCD_PORT     /**< port for 4bit data bit 1 */
#define LCD_DATA2_PORT   LCD_PORT     /**< port for 4bit data bit 2 */
#define LCD_DATA3_PORT   LCD_PORT     /**< port for 4bit data bit 3 */
#define LCD_DATA0_PIN    4            /**< pin for 4bit data bit 0  */
#define LCD_DATA1_PIN    5            /**< pin for 4bit data bit 1  */
#define LCD_DATA2_PIN    6            /**< pin for 4bit data bit 2  */
#define LCD_DATA3_PIN    7            /**< pin for 4bit data bit 3  */
#define LCD_RS_PORT      LCD_PORT     /**< port for RS line         */
#define LCD_RS_PIN       2            /**< pin  for RS line         */
#define LCD_RW_PORT      LCD_PORT     /**< port for RW line         */
#define LCD_RW_PIN       1            /**< pin  for RW line         */
#define LCD_E_PORT       LCD_PORT     /**< port for Enable line     */
#define LCD_E_PIN        3            /**< pin  for Enable line     */
DupeS
Inlägg: 90
Blev medlem: 30 september 2003, 18:27:39
Ort: Linköping

Inlägg av DupeS »

Har du provat att avaktivera JTAG i fuses ?
När JTAG är aktiverat så ligger det pullupmotstånd på dom pinnarna som bara avaktiveras när du stänger av JTAGen..
Användarvisningsbild
Forsgren
EF Sponsor
Inlägg: 1227
Blev medlem: 24 oktober 2003, 13:45:48
Ort: Orsa

Inlägg av Forsgren »

Japp, dom är inaktiverade.. Men nu har jag kommit på vad det var!
Jag använder ett utvecklingskort från futurelec, och på det finns det en kontakt för anslutning av en LCD men i den har dom jordat RW pinnen som behövs bör att kolla busyflaggan... Fick koppla lite special så nu fungerar det som det ska! :)
Skriv svar