Строка заполняется с помощью клавиатуры, но передается пустой - PullRequest
0 голосов
/ 17 сентября 2018
int amjad=0;
char PASS[25];
char PASSEDT[25];

void main()
{
    char Password[25];

    Lcd_init();
    Keypad_init();
    Lcd_Clear();
    int i2=0;

    //here
    while (PORTCbits.RC3==1 &&amjad==0 )
    {
        Lcd_Clear();
        Lcd_Set_Cursor(1,1);
        Lcd_Write_String("Program Mode");
        Lcd_Set_Cursor(2,1);
        Lcd_Write_String(PASSEDT);
        key=GetKey();
        if (key=='*')
        {
            Lcd_Clear();
            Lcd_Set_Cursor(1,1);
            Lcd_Write_String("Password Saved");
            Lcd_Set_Cursor(2,1);
            Lcd_Write_String(PASSEDT);
            memset(Password,0,sizeof(Password));
            while(1)
            {
                if(PORTCbits.RC3==1)
                {
                    amjad=0;
                }
                else if(PORTCbits.RC3==0)
                {
                    __delay_ms(100);
                    Lcd_Clear();
                    break;
                }
            }
        }
        else
        {
            PASSEDT[i2]=key;
            i2++;
            Lcd_Set_Cursor(2,1);
        }
        //Lcd_Write_String(PASSEDT);
    }


}
//here

loop:
    while(PORTCbits.RC4==1)
    {//
        Lcd_Set_Cursor(1,1);
        Lcd_Write_String("Enter");
        Lcd_Write_String(PASSEDT);
        PORTCbits.RC1=0;

Здравствуйте, я заполняю PASSEDT с помощью клавиатуры, и он хорошо печатается на ЖК-дисплее.

Однако, когда PORTCbits.RC3=0 и я отображаю его только в loop, Enterпоказ, любая помощь приветствуется.

(функции ЖК-дисплея точно соответствуют названию)

...