Problem med LCD och PicBasic
Problem med LCD och PicBasic
Försöker skriva ut lite text på en HD44780-display med hjälp av en PIC och PicBasic, men det vill sig inte riktigt. Det konstiga är att alla kommandon som flyttar markören fungerar perfekt, medan den helt vägrar ta emot någon text.
Jag har kopplat enligt schemat i PBP-manualen (http://www.melabs.com/resources/pbpmanu ... Image7.gif).
Någon som känner igen problemet och vet vad som kan vara fel?
Jag har kopplat enligt schemat i PBP-manualen (http://www.melabs.com/resources/pbpmanu ... Image7.gif).
Någon som känner igen problemet och vet vad som kan vara fel?
Nu har jag dubbelkollat alla anslutningar och jag är helt säker på att det är rätt kopplat. Upptäckte en annan konstig sak när jag testkörde. Ibland så ballar det ur och displayen initieras inte på rätt sätt. PIC:en slänger ut till synes slumpmässiga tecken på den (bland annat utropstecken och nollor lite här och var). Ofta fungerar det dock och då står markören där och väntar fint på att få skriva
Första "teckenrutan" är dock alltid svart...
Några fler idéer?

Några fler idéer?
Timing ? Vissa kommandon till LCD'er behöver lite tid på sig.
Förresten, kör du en F84A ??
Kan du visa ett kort "test case" som visar problemet ?
Vad är det för display ?
> Ibland så ballar det ur...
När är "ibland" ?
> och displayen initieras inte på rätt sätt.
Kan hända om man inte väntar på LCD'ns självtest innan man försöker
köra från PIC'en (efter spänningspåslag, alltså). 1-2 sek borde räcka.
Förresten, kör du en F84A ??
Kan du visa ett kort "test case" som visar problemet ?
Vad är det för display ?
> Ibland så ballar det ur...
När är "ibland" ?
> och displayen initieras inte på rätt sätt.
Kan hända om man inte väntar på LCD'ns självtest innan man försöker
köra från PIC'en (efter spänningspåslag, alltså). 1-2 sek borde räcka.
Jag använder mig av PicBasic så timingen sköter inte jag. Det enda jag vet att jag behöver göra är att vänta en halv sekund efter start för att LCD:n ska initieras. Använder en 16F88 och en 2x16-LCD.
Jag har gjort lite nya försök och det fungerar mycket bra att exempelvis ställa in markörer och att hoppa mellan rader. Så länge jag enbart kör markörinstruktioner så funkar allt perfekt, men så fort jag försöker skriva ut text rensas displayen helt. Verkar ju som att det är något med RS-pinnen trots allt...
EDIT: Fick det hela att fungera. Bytte pinne på PIC:en för RS-anslutningen. Gissningsvis var den inställd som analog ingång eller något annat tjafs
Stort tack för hjälpen.
PS. Sodjan: Wispen funkar nästan för bra för övrigt
Jag har gjort lite nya försök och det fungerar mycket bra att exempelvis ställa in markörer och att hoppa mellan rader. Så länge jag enbart kör markörinstruktioner så funkar allt perfekt, men så fort jag försöker skriva ut text rensas displayen helt. Verkar ju som att det är något med RS-pinnen trots allt...
EDIT: Fick det hela att fungera. Bytte pinne på PIC:en för RS-anslutningen. Gissningsvis var den inställd som analog ingång eller något annat tjafs

PS. Sodjan: Wispen funkar nästan för bra för övrigt

Om du hade sagt att du använde F88 och att du hade kopplat
enligt schemat, så hade du direkt kunnat få reda på att du måste
ställa om pinnarna till digial I/O...
Och det är inget "tjafs", det står hur tydligt som helst i beskrivningen
av PORTA i databladet...
> Wispen funkar nästan för bra för övrigt
Hur är det dom säger, "Don't tell me, tell your friends !"

enligt schemat, så hade du direkt kunnat få reda på att du måste
ställa om pinnarna till digial I/O...
Och det är inget "tjafs", det står hur tydligt som helst i beskrivningen
av PORTA i databladet...
> Wispen funkar nästan för bra för övrigt
Hur är det dom säger, "Don't tell me, tell your friends !"


Bara Ett tips är att ha följande rader med i "Början" på programmet.
dvs det skall inte ingå i nån loop eller dylikt.
ANSEL=0
CMCON=7
Då slipper du skifta på portar och dylikt.
Lite beroende på vad du skall använda din lösning till .
men läs gärna lite om dessa 2 raderna på nätet eller i manual (Lite tunt där)
// Freddy
dvs det skall inte ingå i nån loop eller dylikt.
ANSEL=0
CMCON=7
Då slipper du skifta på portar och dylikt.
Lite beroende på vad du skall använda din lösning till .
men läs gärna lite om dessa 2 raderna på nätet eller i manual (Lite tunt där)
// Freddy