Для того чтобы считывать состояние кнопки например S2, необходимо "подтянуть" ее к земле внутренним резистором микросхемы. Если не подтягивать кнопку резистором ее состояние будет меняться от внешних факторов например когда поднесете палец близко к кнопке.
Делается это так
#define S2 BIT3
P1REN |= S2;
Бывают Pull-down кнопки и Pull-up
Pull-up - это когда 1 при нажатой кнопке
Pull-down - 1 при отпущеной кнопке
Pull-down:
P1DIR |= S2;
P1REN |= S2;
Pull-up:
P1REN |= S2;
P1REN |= S2;
P1OUT |= S2;
Мне удобней использовать Pull-up, т.к. это логичней, потому как обычно проверяем что кнопка нажата :)
На примере оператора IF:
Pull-down:
if (P1IN & S2) {} - кнопка не нажата
if (!(P1IN & S2)) {} - кнопка нажата
Pull-up:
if (P1IN & S2) {} - кнопка нажата
if (!(P1IN & S2)) {} - кнопка
не
нажата
Комментариев нет:
Отправить комментарий