Streamlined LCD initialization code, need some help
Never mind, found the problem. Forgot to put the pulsout command in the loop. Doh! (I went ahead and posted the working code for future reference.)
I've been using the long-form 4-bit LCD init code copied from the manual (as I recall) and it works fine but I'd like use the more streamlined version found in the code snippets. I can't get it to work and am hoping you guys can spot the problem. I'm using an 18M2 connected as follows
B.2 = RS
B.3 = EN
B.4 - B.7 = data lines
Never mind, found the problem. Forgot to put the pulsout command in the loop. Doh! (I went ahead and posted the working code for future reference.)
I've been using the long-form 4-bit LCD init code copied from the manual (as I recall) and it works fine but I'd like use the more streamlined version found in the code snippets. I can't get it to work and am hoping you guys can spot the problem. I'm using an 18M2 connected as follows
B.2 = RS
B.3 = EN
B.4 - B.7 = data lines
Code:
[color=Navy]#picaxe [/color][color=Black]18m2[/color]
[color=Green];4-bit LCD routines using portB
;LCD DB4-DB7 = b.4-b.7, RS=b.2, EN=b.3[/color]
[color=Blue]setfreq m32
symbol [/color][color=Purple]index [/color][color=DarkCyan]= [/color][color=Purple]b1[/color]
[color=Blue]symbol RS [/color][color=DarkCyan]= [/color][color=Blue]b.2
symbol EN [/color][color=DarkCyan]= [/color][color=Blue]b.3
gosub [/color][color=Black]initB
main:[/color]
[color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Navy]1[/color]
[color=Blue]gosub [/color][color=Black]LCDinst[/color]
[color=Blue]pause [/color][color=Navy]2000[/color]
[color=Blue]for [/color][color=Purple]index [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]15
[/color][color=Blue]lookup [/color][color=Purple]index[/color][color=Black],[/color][color=Blue]([/color][color=Red]"Hey! All Is Well"[/color][color=Blue])[/color][color=Black],[/color][color=Purple]b0
[/color][color=Blue]gosub [/color][color=Black]LCDchar[/color]
[color=Blue]next [/color][color=Purple]index
b0 [/color][color=DarkCyan]= [/color][color=Navy]192[/color][color=Black]:[/color][color=Blue]gosub [/color][color=Black]LCDinst[/color]
[color=Blue]for [/color][color=Purple]index [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]15
[/color][color=Blue]lookup [/color][color=Purple]index[/color][color=Black],[/color][color=Blue]([/color][color=Red]"This Thing Works"[/color][color=Blue])[/color][color=Black],[/color][color=Purple]b0
[/color][color=Blue]gosub [/color][color=Black]LCDchar[/color]
[color=Blue]next [/color][color=Purple]index[/color]
[color=Blue]pause [/color][color=Navy]8000[/color]
[color=Blue]goto [/color][color=Black]main[/color]
[color=Blue]end[/color]
[color=Black]LCDchar:
[/color][color=Purple]pinsB [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]& [/color][color=Navy]$F0
[/color][color=Blue]high RS
pulsout EN[/color][color=Black],[/color][color=Navy]1
[/color][color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]* [/color][color=Navy]16
[/color][color=Purple]pinsB [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]& [/color][color=Navy]$F0
[/color][color=Blue]high RS
pulsout EN[/color][color=Black],[/color][color=Navy]1
[/color][color=Blue]return[/color]
[color=Black]LCDinst:
[/color][color=Purple]pinsB [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]& [/color][color=Navy]$F0
[/color][color=Blue]pulsout EN[/color][color=Black],[/color][color=Navy]1
[/color][color=Purple]b0 [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]* [/color][color=Navy]16
[/color][color=Purple]pinsB [/color][color=DarkCyan]= [/color][color=Purple]b0 [/color][color=DarkCyan]& [/color][color=Navy]$F0
[/color][color=Blue]pulsout EN[/color][color=Black],[/color][color=Navy]1
[/color][color=Blue]return[/color]
[color=Black]initB:
[/color][color=Blue]pause [/color][color=Navy]1000
[/color][color=Purple]dirsB [/color][color=DarkCyan]= [/color][color=Navy]$FF
[/color][color=Blue]for [/color][color=Purple]index [/color][color=DarkCyan]= [/color][color=Navy]0 [/color][color=Blue]to [/color][color=Navy]9
[/color][color=Blue]lookup [/color][color=Purple]index[/color][color=Black],[/color][color=Blue]([/color][color=Navy]$30[/color][color=Black],[/color][color=Navy]$30[/color][color=Black],[/color][color=Navy]$30[/color][color=Black],[/color][color=Navy]$20[/color][color=Black],[/color][color=Navy]$20[/color][color=Black],[/color][color=Navy]$80[/color][color=Black],[/color][color=Navy]$0[/color][color=Black],[/color][color=Navy]$C0[/color][color=Black],[/color][color=Navy]$0[/color][color=Black],[/color][color=Navy]$10[/color][color=Blue])[/color][color=Black],[/color][color=Purple]b0
pinsb [/color][color=DarkCyan]= [/color][color=Purple]b0
[/color][color=Blue]pulsout EN[/color][color=Black],[/color][color=Navy]1
[/color][color=Blue]next [/color][color=Purple]index
[/color][color=Blue]return[/color]
Last edited: