Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 22.02.2019, 01:22  
vofk
Прохожий
 
Регистрация: 31.01.2010
Адрес: Ессентуки
Сообщений: 5
Сказал спасибо: 2
Сказали Спасибо 1 раз в 1 сообщении
vofk на пути к лучшему
По умолчанию Вопрос по СИ (CodeVisionAVR)

Почему для установки или сброса бита в порте обычно используют конструкции типа:


#define set_bit(reg,bit) reg |= (1‹‹bit)

#define clear_bit(reg,bit) reg &= ~(1‹‹bit)

set_bit(DDRB,0);
set_bit(PORTB,0);

не проще просто: DDRB.0=1; PORTB.0=1; или есть какая-то разница?
Реклама:

Последний раз редактировалось vofk; 22.02.2019 в 01:27.
vofk вне форума  
Непрочитано 22.02.2019, 01:40  
AR_Favorit
Почётный гражданин KAZUS.RU
 
Регистрация: 13.03.2010
Сообщений: 2,901
Сказал спасибо: 499
Сказали Спасибо 3,061 раз(а) в 1,425 сообщении(ях)
AR_Favorit на пути к лучшему
По умолчанию Re: Вопрос по СИ (CodeVisionAVR)

Сообщение от vofk Посмотреть сообщение
не проще просто: DDRB.0=1; PORTB.0=1; или есть какая-то разница?
1) Конечно, проще. Только это уже не Си, а проприетарная текстовая конструкция кодевижна, которая не станет работать в других компиляторах

2) Попробуйте сделать то же самое в кодевижне с портом F. Не получается, опять надо городить дефайны. Ну и не нужно тогда это "проще", если взять за правило делать, "как положено", чтоб работало везде одинаково...
AR_Favorit вне форума  
Сказали "Спасибо" AR_Favorit
vofk (22.02.2019)
Непрочитано 22.02.2019, 09:31  
NewWriter
Почётный гражданин KAZUS.RU
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,504
Сказал спасибо: 401
Сказали Спасибо 2,217 раз(а) в 1,315 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Вопрос по СИ (CodeVisionAVR)

Потому что в Си нет битового типа данных. И битовые операции возможны либо через байты, либо через битовые поля, которые являются разновидностью структур.
NewWriter вне форума  
Непрочитано 22.02.2019, 10:49  
baiderin
Почётный гражданин KAZUS.RU
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,727
Сказал спасибо: 2,417
Сказали Спасибо 894 раз(а) в 581 сообщении(ях)
baiderin на пути к лучшему
По умолчанию Re: Вопрос по СИ (CodeVisionAVR)

Сообщение от vofk Посмотреть сообщение
DDRB.0=1;
Через неделю вы будете судорожно вспоминать,каким же битом что то там обозначается. Это не наглядно.
baiderin вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интересный вопрос - два усилителя к одной нагрузке eCAH Аудиотехника 45 14.10.2010 01:23
Вопрос по блоку питания... El-Shang Источники питания и свет 13 19.11.2009 17:35
вопрос из детства spilberg Отвлекитесь, эмбеддеры! 9 03.07.2009 14:01
Вопрос по инвертору для LСD voha2006 Ремонт оргтехники 15 25.04.2009 09:57
Proteus, CodeVisionAVR или кривые руки, вот в чем вопрос :)) porex Микроконтроллеры, АЦП, память и т.д 5 24.04.2009 17:22


Часовой пояс GMT +4, время: 08:06.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot