Кнопка! От сложного к простому.

Здесь обсуждаем Arduino
Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Кнопка! От сложного к простому.

Сообщение GhostX » 05 янв 2016, 20:07

вот это: PINx & (1 << PINxn)
как по русский будет звучать?

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Кнопка! От сложного к простому.

Сообщение gurvinok » 05 янв 2016, 20:21

PINx это адрес регистра порта, например порт C будет PINC. Далее & это побитное И. (1 << PINC0) говорит о том что нужно единицу сдвинуть налево на количество равное PIN0, в данном случае на ноль, так как если посмотреть макроопределения, то можно увидеть #define PINC0 0 // Пин 0 порта С.
А теперь в битах.
PINC это порт на 8 бит. То есть если написать char var = PINC; то в переменную var запишется весь порт, все что на пинах на данный момент есть. Например там нажата кнопка и на порту число 0x01 или 0b00000001.
(1 << PINC0) в бинаре будет выглядеть так 0b00000001 << 0b00000000, То есть единица в нулевом разряде останется на месте. Далее побитное И 0b00000001 (то что прочитали из порта) & 0b00000001 ( то что получили сдвигом) получим в конце 0b00000001, то бишь кнопка нажата. А вот если в PINC будет 0b00000000, то при побитном И на выходе будет 0b00000000, так как 0 И 1 будет 0. И при таком варианте не важно что было в остальных разрядах порта, так как при побитном И они обнулятся и мы железно получим, либо 1, либо 0.
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Кнопка! От сложного к простому.

Сообщение GhostX » 05 янв 2016, 20:32

Так, а на ардуине какие порты?
сдвиги какие то....)) стоило было подумать, а не так уж и сложно это самое программирование, и тут НА тебе что то новое и вообще не понятное, что сдвигать, а главное зачем.))) Со сдвигами буду читать, один раз я что то слышал про них, сейчас второй раз они комне пришли. Значит читать уже пора.))

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Кнопка! От сложного к простому.

Сообщение gurvinok » 05 янв 2016, 20:39

Сдвиг, это двигание бита по байту влево или вправо.
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Кнопка! От сложного к простому.

Сообщение GhostX » 05 янв 2016, 20:41

вопрос про порты звучал. Про сдвиги читать буду интернет.))

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Кнопка! От сложного к простому.

Сообщение gurvinok » 05 янв 2016, 21:22

У любого AVR есть порты ввода вывода. Их может быть несколько. Завутся A B C D
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Кнопка! От сложного к простому.

Сообщение GhostX » 05 янв 2016, 22:01

Ардуина, это тоже авр. Как соотнести
Я сейчас прилег начал искать про эти порты и щеманул.))
Буду переписывать кнопки попробую с портами написать.

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Кнопка! От сложного к простому.

Сообщение gurvinok » 05 янв 2016, 22:15

А я вот такой хренью ща страдаю.
test.aiff
(6.29 МБ) 251 скачивание
Если долго мучиться, может быть получится.

Аватара пользователя
GhostX
Сообщения: 1115
Зарегистрирован: 07 дек 2015, 14:40
Откуда: Рязань

Re: Кнопка! От сложного к простому.

Сообщение GhostX » 05 янв 2016, 22:48

С айпада не могу включить.
За компом послушаю
Порты на ардуино ABCD это именно порты или группы портов?

Аватара пользователя
gurvinok
Сообщения: 1500
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: Кнопка! От сложного к простому.

Сообщение gurvinok » 05 янв 2016, 22:49

Именно порты
Если долго мучиться, может быть получится.

Ответить