PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 6 mars 2005, 22:49:18
Hej!
Får inte min lcd att fungera,, blir bara svarta fyrkanter på den. Antagligen initieringsproblem tror jag..
E0 = RS
E1 = E
E2 = R/W
Dom andra portarna kör jag på portb0,b1,b2 osv..
Här är koden jag kör nu:
Kod: Markera allt
DEFINE LOADER_USED 1
Pause 400
' Define LCD pins
DEFINE LCD_RSREG PORTE
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTE
DEFINE LCD_EBIT 1
DEFINE LCD_RWREG PORTE
DEFINE LCD_RWBIT 2
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 0
' Pre-start
Pause 500 ' Wait for LCD to wake up
LCDOut $FE, 1 'Initiate LCD by clearing display
Pause 500 'Wait for LCD to initiate
LCDOut $FE, 1
LCDOut "Hej"
Pause 500
End
AndLi
Inlägg: 18274 Blev medlem: 11 februari 2004, 18:17:59
Ort: Knivsta
Kontakt:
Inlägg
av AndLi » 6 mars 2005, 22:59:45
Ja det är defenitivt ett initeringsproblem, mig veterligen är det betydligt fler kommandon som behövs för att sätta upp den korrekt.. Så titta i databladet för drivkretsen igen och se vad du missar...
cyr
Inlägg: 2712 Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:
Inlägg
av cyr » 6 mars 2005, 23:50:48
Jag vet inte vad det är du programmerar i, men om det finns en LCDout-funktion, finns det då inte en färdig LCDinit eller liknande också?
jack
EF Sponsor
Inlägg: 2059 Blev medlem: 5 oktober 2004, 17:32:27
Inlägg
av jack » 7 mars 2005, 00:00:12
PicBasic eller?
Ska nog inte behövas fler kommandon än sådär. Men kolla PicBasic-manualen så ser du exakt hur du ska göra.
Annars så vet jag inte.
EDIT: Från manualen:
Kod: Markera allt
' Set LCD Data port
DEFINE LCD_DREG PORTB
' Set starting Data bit (0 or 4) if 4-bit bus
DEFINE LCD_DBIT 4
' Set LCD Register Select port
DEFINE LCD_RSREG PORTB
' Set LCD Register Select bit
DEFINE LCD_RSBIT 1
' Set LCD Enable port
DEFINE LCD_EREG PORTB
' Set LCD Enable bit
DEFINE LCD_EBIT 0
' Set LCD bus size (4 or 8 bits)
DEFINE LCD_BITS 4
' Set number of lines on LCD
DEFINE LCD_LINES 2
' Set command delay time in us
DEFINE LCD_COMMANDUS 2000
' Set data delay time in us
DEFINE LCD_DATAUS 50
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 7 mars 2005, 13:12:16
Ja det är PicBasicPro jag kör.. Jag ska testa det när jag kommer hem..
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 8 mars 2005, 14:52:41
På 16F877 måste man sätta några pinnar på nått digitalt tjaffs. Då skriver jag ADCON= 7
Är det inte något liknande jag måste skriva till P16C84?
Icecap
Inlägg: 26647 Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark
Inlägg
av Icecap » 8 mars 2005, 15:01:29
ADCON finns inte på 16x84......
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 8 mars 2005, 15:04:53
Nej det vet jag.. Men finns det inte något motsvarande som jag kanske har missat i min kod till P16C84?
Kod: Markera allt
DEFINE LOADER_USED 1
' Define LCD pins
DEFINE LCD_DREG PORTA
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 3
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
' Pre-start
Pause 500 ' Wait for LCD to wake up
LCDOut $FE, 1 'Initiate LCD by clearing display
Pause 500 'Wait for LCD to initiate
LCDOut $FE, 1
LCDOut "Hej"
Pause 500
End
Edit: Det enda jag ser på LCDn är Svarta rutor fortfarande.
cyr
Inlägg: 2712 Blev medlem: 27 maj 2003, 16:02:39
Ort: linköping
Kontakt:
Inlägg
av cyr » 8 mars 2005, 18:54:49
RS på RA4 är kanske inte så bra, för den är väl open drain på '84... Fast är den inte det på 877 också förrsten? Kommer inte ihåg, men testa en annan pinne iaf är mitt tips.
Icecap
Inlägg: 26647 Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark
Inlägg
av Icecap » 8 mars 2005, 19:00:32
Eller sätt en pull-up motstånd på 10K där.
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 8 mars 2005, 19:14:54
Det har jag redan!
Jag kör efter exemplet i PicBasic manualen på sidan 96.
Fast den är gjord till en 2x16 lcd.. den jag har är en 4x20 men det är väl bara att man ändrar lines´en från två till 4?
Jine
Inlägg: 1795 Blev medlem: 21 juli 2004, 20:25:56
Skype: Jim.Nelin
Ort: Trångsund, Stockholm
Kontakt:
Inlägg
av Jine » 8 mars 2005, 19:25:38
Testa och kör med 2 "Lines" bör väl fugera som en 2x20 då?
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 8 mars 2005, 19:26:42
Jo men det funkar ändå inte..
Problemet är ju att det bara blir svarta rutor
Icecap
Inlägg: 26647 Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark
Inlägg
av Icecap » 8 mars 2005, 19:40:27
Om det bara blir svarta rutor brukar kontrasten att vara för kraftig. Sänk den.
Mutiaz
Inlägg: 295 Blev medlem: 3 april 2004, 17:29:53
Inlägg
av Mutiaz » 8 mars 2005, 19:44:13
Det har jag testat.. Ingen skildnad..