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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Работать с битами в переменной "С" помогите

Непрочитано 10.02.2011, 21:12  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Работать с битами в переменной "С" помогите

Добрый всем вечер.
Возникла такая ситуация.
Как правильно сделать выражение с битом if (бит №1 переменной1==0).
Например:
unsigned char peremenay1;
unsigned char peremenay2;
vod fun (void)
peremenay1=0b01010101;
if (бит №1 переменной1==0) {peremenay2=1}
else {peremenay2=0}
Реклама:
7Fantomas7 вне форума  
Непрочитано 10.02.2011, 21:15  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

Сообщение от 7Fantomas7 Посмотреть сообщение
Добрый всем вечер.
Возникла такая ситуация.
Как правильно сделать выражение с битом if (бит №1 переменной1==0).
Например:
unsigned char peremenay1;
unsigned char peremenay2;
vod fun (void)
peremenay1=0b01010101;
if (бит №1 переменной1==0) {peremenay2=1}
else {peremenay2=0}
Код:
if( var_1 & 0x01 ) var_2 = 1; else var_2 = 0;
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
7Fantomas7 (10.02.2011)
Непрочитано 10.02.2011, 21:34  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

7Fantomas7, Для CCS смотри хелп на тему #byte и #bit , там все намного проще...

Код:
int8 Var1
#byte LATC  =0xF8B
#bit  LED1   = LATC.1
#bit  bit_test = Var1.3

//--------------------//

  if(!bit_test) LED1=1;
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
7Fantomas7 (10.02.2011)
Непрочитано 10.02.2011, 22:32  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

dosikus,
У меня стоит не CCS, а C30.
Всеравно спасибо.
Может подскажет кто еще один вопрос.
Есть 8 регистровых бит оределяющих состояние пинов, т.е. LATbits.LATх.хх.
Но вот не задача эти биты раскиданы по всем портам да еще и перемешаны так что не приснится в страшном сне шизоидной бабульке. Как правильно сбить эти биты чтоб записать в их восьмибитное двоичное число. Вобшем проще говоря это динамичка, питание сегментов.
7Fantomas7 вне форума  
Непрочитано 10.02.2011, 22:40  
avp94
Почётный гражданин KAZUS.RUN
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,116
Сказал спасибо: 61
Сказали Спасибо 1,151 раз(а) в 623 сообщении(ях)
avp94 на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

Попробуйте почитать начиная с этого поста _http://electronix.ru/forum/index.php?showtopic=78757&view=findpost&p=791668, может что и пригодится.
avp94 вне форума  
Сказали "Спасибо" avp94
7Fantomas7 (10.02.2011)
Непрочитано 10.02.2011, 22:42  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

7Fantomas7, Посмотри у ARV http://arv.radioliga.com/component/o...page/Itemid,1/

То ли в микро_термостате , то ли в микро_таймере , есть пример такой организации битов.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 10.02.2011, 22:51  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

dosikus,
Не нашел.
avp94,
Спасибо читаю.
7Fantomas7 вне форума  
Непрочитано 10.02.2011, 22:54  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

Сообщение от 7Fantomas7 Посмотреть сообщение
dosikus,
У меня стоит не CCS, а C30.
Всеравно спасибо.
Может подскажет кто еще один вопрос.
Есть 8 регистровых бит оределяющих состояние пинов, т.е. LATbits.LATх.хх.
Но вот не задача эти биты раскиданы по всем портам да еще и перемешаны так что не приснится в страшном сне шизоидной бабульке. Как правильно сбить эти биты чтоб записать в их восьмибитное двоичное число. Вобшем проще говоря это динамичка, питание сегментов.
А что мешает разместить их на порту рядышком, а уж "перемешивать" лучше в таблице перекодировки?
ut1wpr вне форума  
Непрочитано 10.02.2011, 22:54  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

http://arv.radioliga.com/component/o...rtdown/id,108/
Качай исходники.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.02.2011, 02:23  
7Fantomas7
Почётный гражданин KAZUS.RUN
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

ut1wpr,
Цитата:
А что мешает разместить их на порту рядышком, а уж "перемешивать" лучше в таблице перекодировки?
Понятно что мешает, что ж тут не понятного. Схема сделана не мной и плата разведена не мной и изменить я это не могу, я б лучше с разводкой помучился.
Я об эту схему голову похоже сломаю.
Вобщем по теме думаю что с переменными разобрался, по поводу виртуального регистра или порта нужно заводить отдельную тему.
Хотя так до конца не понимаю выражение if( var_1 & 0x01 ), просто механически знаю что так делают и в принципе раньше знал, просто чтоб не наделать ошибок спросил, а понимания нет.
7Fantomas7 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проект на "С" не могу разобраться с переменной 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 0 30.01.2011 15:56
Нужно пересчитать переменные на "С" помогите 7Fantomas7 Микроконтроллеры, АЦП, память и т.д 12 17.10.2010 13:37
Помогите с Фузи битами ATmega8L ewgen404 Микроконтроллеры, АЦП, память и т.д 2 03.03.2010 02:12


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


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