mullemeck skrev:Har du lyckats få igång den i 4bits läge?
Mina försök med det gick inte alls, vet inte om det är mina kopplingar eller om min lcd inte gillade det...
du skulle ju kunna testa koppla in alla 8 bitarna och testa om det funkar bättre isåfall..
Ja jag kör den på fyra bits läge nu.
Har funderat lite på att koppla in alla åtta men då får jag knappt några I/O ben över eller finns det något smidigt sätt att få tillgång till några fler I/O ben på en PIC utan att byta till en annan PIC?
Man kan ju använda latchar, encoders och allt vad det heter för att expandera antalet utgångar, men då är det i de flesta fall lättare att byta till en större PIC.
Ok då kanske jag ska prova det för det brukar inte fungera när jag ska prova någon ny PIC så det känns som det blir mindre problem att prova med en latch.
Nu har jag deklarerat alla benen så inte standardbenen är några andra, skrev så här i koden och har kopplat som på bilden ovan men det blir fortfarande samma fel.
'Set LCD Data port
DEFINE LCD_DREG PORTA
'Set starting Data BIT (0 OR 4) IF 4-BIT bus
DEFINE LCD_DBIT 0
'Set LCD Register Select port
DEFINE LCD_RSREG PORTA
'Set LCD Register Select BIT
DEFINE LCD_RSBIT 4
'Set LCD Enable port
DEFINE LCD_EREG PORTB
'Set LCD Enable BIT
DEFINE LCD_EBIT 3
'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
har inte orkat läsa igenom tråden men jag vet att 628 och de lite "bättre" kretsarna har specialfunktioner på pinnarna som måste stängas av. Iaf RA pinnarna. CMCON måste vara 0 eller hur det var, kommer dock inte ihåg vilket register den låg i. Återkommer med det. Jag hade en jävla massa problem att få igång grejjerna när jag inte visste det eftersom de inte kunde bli utgångar
På 628 är det bara A5 som endast kan vara input. Alla andra pinnar kan ha de vanliga I/O-egenskaperna.
PICBasic fixar nog registerna så att alla pinnar blir vanliga I/O så länge man inte anger annat. Det förutsätter förstås att man väljer rätt alternativ vid programmeringen också.
'Set LCD Data port
DEFINE LCD_DREG PORTA
'Set starting Data BIT (0 OR 4) IF 4-BIT bus
DEFINE LCD_DBIT 0
'Set LCD Register Select port
DEFINE LCD_RSREG PORTA
'Set LCD Register Select BIT
DEFINE LCD_RSBIT 4
'Set LCD Enable port
DEFINE LCD_EREG PORTB
'Set LCD Enable BIT
DEFINE LCD_EBIT 3
'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 100
Pause 1000
LCDOut $FE,1
LCDOut $FE, $80 , "abcdefghijklmno"
End
$FE, 1
Clear display
$FE, 2
Return home (beginning of first line)
$FE, $0C
Cursor off
$FE, $0E
Underline cursor on
$FE, $0F
Blinking cursor on
$FE, $10
Move cursor left one position
$FE, $14
Move cursor right one position
$FE, $C0
Move cursor to beginning of second line
$FE, $94
Move cursor to beginning of third line
$FE, $D4
Move cursor to beginning of fourth line
Tyvärr så hjälpte det inte.
Ser ut så här på LCD:n:
"abc6 eVfv"
När jag kollar i manualen ser det ut så här, kollade i pdf manualen för Picbasic Pro:
Command Operation
$FE, 1 Clear display
$FE, 2 Return home
$FE, $0C Cursor off
$FE, $0E Underline cursor on
$FE, $0F Blinking cursor on
$FE, $10 Move cursor left one position
$FE, $14 Move cursor right one position
$FE, $80 Move cursor to beginning of first line
$FE, $C0 Move cursor to beginning of second line
$FE, $94 Move cursor to beginning of third line
$FE, $D4 Move cursor to beginning of fourth line