вторник, 16 октября 2012 г.

Кнопки

Для того чтобы считывать состояние кнопки например 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)) {} - кнопка  не нажата

Комментариев нет:

Отправить комментарий