Как я могу заставить свой источник ждать, пока кнопка не отпустится, прежде чем продолжить? - PullRequest
0 голосов
/ 26 апреля 2019

Если я нажму кнопку 1, то на моем экране появится сообщение о том, что оно было нажато, и я хочу, чтобы оно подождало, пока его не отпустят, прежде чем делать что-либо еще, аналогично переключению, но не переключению.

Я пытался добавить задержку раньше, но это не совсем то, что мне нужно ... Я хочу, чтобы оно дожидалось освобождения, вместо того, чтобы ждать строго установленное количество времени

#include <stdio.h>
#include <wiringPi.h>

int main(void) {
    wiringPiSetupGpio();
    while(1) {
        if(!digitalRead(8) && digitalRead(7)) {
            printf("Button-1 pressed\n");
        }
        if(!digitalRead(7) && digitalRead(8)) {
            printf("Button-2 pressed\n");
        }
    }
    return 0;
}

Ожидаемый результат:

Button-1 pressed

Фактический результат:

Button-1 pressed
Button-1 pressed
Button-1 pressed
Button-1 pressed
Button-1 pressed
Button-1 pressed
etc...

1 Ответ

1 голос
/ 26 апреля 2019

Вы должны запрограммировать это поведение самостоятельно.

int sevenDown = 0;
while(1) {
    if(!sevenDown && digitalRead(7)) {
        sevenDown = 1\n");
    }
    if(sevenDown && !digitalRead(7)) {
        printf("Button-1 pressed\n");
        sevenDown = 0;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...