Hello Arduino-guys,
I have salvaged Nokia 3310 LCD's and all have this "error":
The standard code gives the characters in mirror and the display is built up from right to left.
The mirroring text I've first solved by reversing the ASCII-library:
the capital C is orginal ,{0x3e, 0x41, 0x41, 0x41, 0x22} // 43 C
the capital C in mirror ,{0x22, 0x41, 0x41, 0x41, 0x3e} // 43 C
More professional is the function which handels the characters:
orginal:
void LcdCharacter(char character)
{
for (int index = 0; index < 5; index++) LcdWrite(LCD_D, ASCII[character - 0x20][index]);
LcdWrite(LCD_D, 0x00);
}
changed to :
void LcdCharacter(char character)
{
for (int index = 4; index >= 0; index--) LcdWrite(LCD_D, ASCII[character - 0x20][index]); // ASCII reversed , is correct for 3310 LCD
LcdWrite(LCD_D, 0x00);
}
The issue I can't solve is the start of the characters printing in the upper right corner instead of the upper left.
I suppose upper right corner is position (0,0) for the display
You see in the code if you reverse "Solar" to "raloS", it is readable for humans, but on the right part of the screen. (with statement "x-52" it travelles to the left, but all strings need to be reversed)
The written graphic on the bottom of the screen, function " LcdXY " is reversed by counting down.
the code is a part of a solarpanel informationpanel, but the Arduino One + the 3310-display is functional.
Who can help / give advise how to mirror/revert the text so it starts counting in the upper left corner?
LCD3310mirrored.txt (12.1 KB)