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

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

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

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

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

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


 
Опции темы

Вопрос по СИ (CodeVisionAVR)

Непрочитано 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.RUN
 
Регистрация: 13.03.2010
Сообщений: 2,896
Сказал спасибо: 498
Сказали Спасибо 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.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: Вопрос по СИ (CodeVisionAVR)

Потому что в Си нет битового типа данных. И битовые операции возможны либо через байты, либо через битовые поля, которые являются разновидностью структур.
NewWriter вне форума  
Непрочитано 22.02.2019, 10:49  
baiderin
Почётный гражданин KAZUS.RUN
 
Аватар для baiderin
 
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,739
Сказал спасибо: 2,487
Сказали Спасибо 897 раз(а) в 584 сообщении(ях)
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, время: 00:54.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.