реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Расбираюсь с LCD, Помогите в освоении!
Midas
сообщение Sep 9 2007, 16:27
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 25
Регистрация: 24-06-07
Пользователь №: 28 661



Открыл один из примеров протеуса 7 для работы с LCD

А там в инициалазации портов МК есть некоторые строки, что они означают? А то чо-то я недопетреваю зачем это всё так писать! 07.gif


DDRD |= (1<<PD7);
PORTD &= ~(1<<PD7);


Зарание всем большое спасибо a14.gif !
Go to the top of the page
 
+Quote Post
Guest_=AVR=_*
сообщение Sep 9 2007, 17:08
Сообщение #2





Guests






DDRD |= (1<<PD7);
Это означает "поставить в "1" ТОЛЬКО тот бит DDRD, который отвечает за ногу PD7 (т.е. настроить PORTD.7 на выход), а конфигурацию остальных ног порта D оставить без изменений.

PORTD &= ~(1<<PD7);
А это означает "сбросить в "0" только ногу PD7, не трогая остальные ноги порта D".

В обоих примерах используются логические операции ("ИЛИ" = "|" в первом, "И" = "&" и "НЕ" = "~" во втором) вместо более очевидных операций присваивания - например, DDRD = (1<<PD7);. Такая операция тоже выставит нужный бит в "1", но зато сбросит остальные 7 бит в "0", а этого в данной ситуации как раз и не нужно.

ВЫРАЖЕНИЕ (1<<PD7) тождественно константе 0x80, т.к. символу PD7 в соответствующем .h-файле присвоено значение 7 (т.е. 1 << 7 = 0x80). Так "громоздко" пишут, во-первых, для того, чтобы не заморачиваться с запоминанием-упоминанием численных значений, а во-вторых, для того, чтобы получить требуемый результат вне зависимости от величины этого численного значения. Такая запись означает "константа, у которой в "1" установлен(ы) тот(те) бит(ы), номер(а) которого(ых) стоят справа от "<<""
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Sep 13 2007, 05:05
Сообщение #3


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(=AVR= @ Sep 9 2007, 20:08) *
Такая запись означает "константа, у которой в "1" установлен(ы) тот(те) бит(ы), номер(а) которого(ых) стоят справа от "<<""

На самом деле в операции << справа указывается количество позиций сдвига, и несколько бит таким образом указать не удастся. Установить биты 3 и 5 можно так:
Код
5<<3

биты 8 и 12:
Код
0x11<<8
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016