I'm using Tiva c to drive an LCD but some characters and numbers are wrong displayed, for example, N is displayed as L, 2 and 3 are displayed as 0 but other characters and letters are displayed correctly.
Here is the function that displays characters:
void LCD_voidWriteCharacter(char Character)
{
SET_BIT(GPIO_PORTA_DATA_R, 7); // RS pin is 1 -> data
GPIO_PORTB_DATA_R = Character;
SET_BIT(GPIO_PORTA_DATA_R, 5); // Enable is high (latch)
Delay_ms(2);
CLEAR_BIT(GPIO_PORTA_DATA_R, 5); // Enable is low
}
where could be the problem? sorry for my english
Lets look at what your examples have in common:
'N' == 0100 1110
'L' == 0100 1100
'2' == 0011 0010
'3' == 0011 0011
'0' == 0011 0000
The problem always seems to be 2nd lowest bit.
And sometimes the lowest bit. (in the case of '3'
turning into '0'
),
I conclude you have some bad wiring connection near the lowest bits of communication from your board to the LCD screen.