I'm trying to use an AXE132 with predefined messages. The Display is a standard 4x20 LCD off the bay.
I've changed the AXE134 program downloaded from rev-ed'
revision:
All I've changed are the predefined messages:
My code:
When I run this I get Line 1 displaying correctly but then the display is corrupted:
If I only display 1 line, i.e. comment out the other 3 display lines each line displays correctly on it's own.
If I send text lines to the LCD, not using predefined messages, everything displays correctly. So I'm sure it's not an incompatible LCD.
Any ideas?
Cheers
I've changed the AXE134 program downloaded from rev-ed'
revision:
Code:
[color=Green]; AXE134 Serial 20x4 OLED using PICAXE-18M2
; Emulates basic serial operation of the popular AXE033 module
; CPS, May 2011
; JB, Jan 2012[/color]
Code:
[color=Blue]EEPROM [/color][color=Navy]00[/color][color=Black], [/color][color=Blue]([/color][color=Red]"Message 0 1234567890"[/color][color=Blue]) [/color][color=Green]; store msg 0 in the EEPROM memory[/color]
[color=Blue]EEPROM [/color][color=Navy]20[/color][color=Black], [/color][color=Blue]([/color][color=Red]"Message 1 1234567890"[/color][color=Blue]) [/color][color=Green]; store msg 1 in the EEPROM memory[/color]
[color=Blue]EEPROM [/color][color=Navy]40[/color][color=Black], [/color][color=Blue]([/color][color=Red]"Message 2 1234567890"[/color][color=Blue]) [/color][color=Green]; store msg 2 in the EEPROM memory[/color]
[color=Blue]EEPROM [/color][color=Navy]60[/color][color=Black], [/color][color=Blue]([/color][color=Red]"Message 3 1234567890"[/color][color=Blue]) [/color][color=Green]; store msg 3 in the EEPROM memory[/color]
Code:
[color=Navy]#picaxe [/color][color=Black]20x2[/color]
[color=Blue]setfreq m8
pause [/color][color=Navy]1000 [/color][color=Green];Wait for LCD to initialise[/color]
[color=Blue]symbol LCDSerial [/color][color=DarkCyan]= [/color][color=Blue]c.7
symbol LCDBacklight [/color][color=DarkCyan]= [/color][color=Blue]c.5
SYMBOL lcdcommand [/color][color=DarkCyan]= [/color][color=Navy]$FE [/color][color=Green]; = 254 - send this before following commands[/color]
[color=Blue]symbol lcdmessage [/color][color=DarkCyan]= [/color][color=Navy]253 [/color][color=Green]; Display message stored on AXE133[/color]
[color=Blue]SYMBOL lcdclear [/color][color=DarkCyan]= [/color][color=Navy]$01 [/color][color=Green]; clear screen and cursor to home position[/color]
[color=Blue]SYMBOL lcdline1 [/color][color=DarkCyan]= [/color][color=Navy]128 [/color][color=Green]; move to 1st line 1st character[/color]
[color=Blue]SYMBOL lcdline2 [/color][color=DarkCyan]= [/color][color=Navy]192 [/color][color=Green]; move to 2nd line 1st character[/color]
[color=Blue]SYMBOL lcdline3 [/color][color=DarkCyan]= [/color][color=Navy]148 [/color][color=Green]; move to start of 3rd line[/color]
[color=Blue]SYMBOL lcdline4 [/color][color=DarkCyan]= [/color][color=Navy]212 [/color][color=Green]; move to start of 4th line[/color]
[color=Blue]symbol baudmode [/color][color=DarkCyan]= [/color][color=Blue]n2400 [/color][color=Green]; Serial speed for LCD[/color]
[color=Blue]symbol [/color][color=Purple]Brightness [/color][color=DarkCyan]= [/color][color=Purple]w4 [/color][color=Green];Define symbol to control PWM Duty
;Setup input and Outpit pins[/color]
[color=Blue]let [/color][color=Purple]dirsb [/color][color=DarkCyan]= [/color][color=Navy]%11111111 [/color][color=Green];Set Input or Output on B (All Outputs)[/color]
[color=Blue]let [/color][color=Purple]dirsc [/color][color=DarkCyan]= [/color][color=Navy]%10100001 [/color][color=Green];Set Input or Output on C (All I/P except)
;C.5 O/P (Backlight PWM)
;C.7 O/P (Serial to LCD)[/color]
[color=Purple]Brightness [/color][color=DarkCyan]= [/color][color=Navy]500 [/color][color=Green];Set PWM Duty initial value (500 = 50%
;1000 = 100%)
;PWM Backlight[/color]
[color=Blue]pwmout LCDBacklight[/color][color=Black],[/color][color=Navy]249[/color][color=Black],[/color][color=Purple]brightness [/color][color=Green];Turn on LCD Backlight
;Amend this to allow saving to EEPROM
[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdcommand[/color][color=Black],[/color][color=Blue]lcdclear) [/color][color=Green];Clear display[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdcommand[/color][color=Black],[/color][color=Blue]lcdline1) [/color][color=Green];Position set to LCD Line 1[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdmessage[/color][color=Black],[/color][color=Navy]0[/color][color=Blue]) [/color][color=Green];Displayed saved message 0[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdcommand[/color][color=Black],[/color][color=Blue]lcdline2) [/color][color=Green];Position set to LCD Line 2[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdmessage[/color][color=Black],[/color][color=Navy]1[/color][color=Blue]) [/color][color=Green];Displayed saved message 1[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdcommand[/color][color=Black],[/color][color=Blue]lcdline3) [/color][color=Green];Position set to LCD Line 3[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdmessage[/color][color=Black],[/color][color=Navy]2[/color][color=Blue]) [/color][color=Green];Displayed saved message 2[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdcommand[/color][color=Black],[/color][color=Blue]lcdline4) [/color][color=Green];Position set to LCD Line 4[/color]
[color=Blue]serout LCDSerial[/color][color=Black], [/color][color=Blue]baudmode[/color][color=Black], [/color][color=Blue](lcdmessage[/color][color=Black],[/color][color=Navy]3[/color][color=Blue]) [/color][color=Green];Displayed saved message 3[/color]
[color=Black]main:
[/color][color=Blue]goto [/color][color=Black]main[/color]
If I only display 1 line, i.e. comment out the other 3 display lines each line displays correctly on it's own.
If I send text lines to the LCD, not using predefined messages, everything displays correctly. So I'm sure it's not an incompatible LCD.
Any ideas?
Cheers