"Я пытаюсь использовать кнопку, которая при нажатии вызывает отправку строкового сообщения через UART, но при запуске кода она всегда обнаруживает, что кнопка" всегда нажата ", что не идеально. Мне нужна помощь в исправлении моего кода.
Большое спасибо.
Я использую EasyPIC Fusion v7. Устройство P32MX795F512L @ 80 МГц. Я использую MikroC Pro для PIC32 в качестве своей IDE. "
"Для этого кода используется библиотека кнопок и UART."
char read;
unsigned int oldstate;
void main() {
AD1PCFG = 0XFFFF; //SETTING AN INPUTS AS DIGITAL I/O
JTAGEN_bit = 0; //disable JTAG
UART2_Init(9600);
Delay_ms(1000);
TRISA = 1; //setting All portA as inputs
UART_Set_Active(&UART2_Read, &UART2_Write, &UART2_Data_Ready, &UART2_Tx_Idle); //Sets UART2 as active
UART_Write_Text("UART is now ready.");
UART_Write(13);
UART_Write(10);
while(1)
{
if (Button(&PORTA, 15, 1 ,1)) //detect if button is pressed
{
UART_Write_Text("Button is pressed.");
UART_Write(13);
UART_Write(10);
oldstate = 1;
}
if (oldstate && Button(&PORTA, 15, 1, 0)) //detect from logic 1 to 0
{
UART_Write_Text("Button is pressed again.");
UART_Write(13);
UART_Write(10);
oldstate = 0;
}
}
}
"Я только узнал, как работает UART и как работает библиотека кнопок.
Я ожидаю, что выход будет «Кнопка нажата» при первом нажатии кнопки, затем «Кнопка снова нажата» при повторном нажатии этой же кнопки.
Выход для кода всегда «Кнопка нажата» и печатается постоянно »