Search code examples
ccortex-mlcdtexas-instruments

Wrong values are displayed on LCD


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


Solution

  • 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.