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

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

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

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

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

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

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

 
Опции темы
Непрочитано 10.02.2011, 21:12  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 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
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
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.RU
 
Регистрация: 24.09.2007
Сообщений: 1,437
Сказал спасибо: 287
Сказали Спасибо 339 раз(а) в 202 сообщении(ях)
7Fantomas7 на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

dosikus,
У меня стоит не CCS, а C30.
Всеравно спасибо.
Может подскажет кто еще один вопрос.
Есть 8 регистровых бит оределяющих состояние пинов, т.е. LATbits.LATх.хх.
Но вот не задача эти биты раскиданы по всем портам да еще и перемешаны так что не приснится в страшном сне шизоидной бабульке. Как правильно сбить эти биты чтоб записать в их восьмибитное двоичное число. Вобшем проще говоря это динамичка, питание сегментов.
7Fantomas7 вне форума  
Непрочитано 10.02.2011, 22:40  
avp94
Почётный гражданин KAZUS.RU
 
Аватар для avp94
 
Регистрация: 26.01.2007
Сообщений: 3,124
Сказал спасибо: 61
Сказали Спасибо 1,154 раз(а) в 625 сообщении(ях)
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
Сообщений: 10,018
Сказал спасибо: 936
Сказали Спасибо 2,270 раз(а) в 1,565 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Работать с битами в переменной "С" помогите

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

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

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

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

http://arv.radioliga.com/component/o...rtdown/id,108/
Качай исходники.
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 11.02.2011, 02:23  
7Fantomas7
Почётный гражданин KAZUS.RU
 
Регистрация: 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, время: 13:03.


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