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

 
 
> bit set, C
i.dmitry
сообщение Jul 22 2007, 09:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-07-07
Пользователь №: 28 963



Правильно ли я понял:
1)
Код
TIMSK = (1 << OCIE2);

2)
Код
TIMSK |= (1 << OCIE2);

----------
В первом случае установится только бит OCIE2, остальные будут нулями.
Во втором случае все биты кроме OCIE2 останотся неизменными, а этот бит станет единицей.
----------
Правильно?

-dmitry.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ReAl
сообщение Jul 22 2007, 18:40
Сообщение #2


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(i.dmitry @ Jul 22 2007, 12:14) *
Во втором случае все биты кроме OCIE2 останотся неизменными, а этот бит станет единицей.
Если строго, то не "останутся неизменными", а "в них запишется то, что из них прочиталось".
Обычно это одно и то же. Но в регистрах, где есть биты, сбрасываемые записью "1", при такой операции эти биты будут сброшены.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 22 2007, 20:17
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(ReAl @ Jul 22 2007, 21:40) *
Если строго, то не "останутся неизменными", а "в них запишется то, что из них прочиталось".
Обычно это одно и то же. Но в регистрах, где есть биты, сбрасываемые записью "1", при такой операции эти биты будут сброшены.


Если хотите говорить строго, то или будьте точны или не будьте так категоричны. smile.gif
Сказанное Вами правильно при работе с регистрами на которые не распространяются команды SBI, CBI (в частности регистра TIMSK). И возможно, это справедливо для некоторых компиляторов. Скажем команда
PORTA |= (1<<5);
компилятором IAR компильнётся в
SBI PORTA,5
что, очевидно, не затронет остальные биты.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 22 2007, 21:30
Сообщение #4


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(SasaVitebsk @ Jul 22 2007, 20:17) *
Сказанное Вами правильно при работе с регистрами на которые не распространяются команды SBI, CBI (в частности регистра TIMSK). И возможно, это справедливо для некоторых компиляторов. Скажем команда PORTA |= (1<<5); компилятором IAR компильнётся в SBI PORTA,5 что, очевидно, не затронет остальные биты.

Известно, что для аврок нового поколения команда sbi pinb,1 изменяет состояние пина на противоположное.

Отсюда вопрос, как сказать такое си компилятору? Должно быть что-то типа PINB |= (1<<1); или я не прав?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- i.dmitry   bit set   Jul 22 2007, 09:14
- - alux   Совершенно верно. В апноте avr035 все подробно опи...   Jul 22 2007, 09:54
||- - defunct   Цитата(=GM= @ Jul 23 2007, 00:30) Известн...   Jul 22 2007, 21:45
|- - ReAl   Цитата(SasaVitebsk @ Jul 22 2007, 22:17) ...   Jul 22 2007, 22:07
|- - SasaVitebsk   Цитата(ReAl @ Jul 23 2007, 01:07) Так кто...   Jul 23 2007, 13:04
- - _artem_   в iar mожно еще так : PORTA_Bit4 = 1;   Jul 22 2007, 19:03
|- - zltigo   Цитата(_artem_ @ Jul 22 2007, 22:03) в ia...   Jul 22 2007, 19:45
|- - _artem_   Цитата(zltigo @ Jul 22 2007, 22:45) Не ст...   Jul 23 2007, 09:26
- - AndreyKeil   Все станет ясно, если посмотреть дизассемблер.   Jul 22 2007, 19:21
- - rezident   Вообще говоря результат действия 1 << OCIE2 ...   Jul 22 2007, 19:52
- - CD_Eater   Цитата из ДШ мега48 Some of the Status Flags are c...   Jul 22 2007, 23:43
|- - ReAl   Цитата(CD_Eater @ Jul 23 2007, 01:43) Неу...   Jul 23 2007, 04:32
|- - =GM=   Цитата(ReAl @ Jul 23 2007, 03:32) =GM=, а...   Jul 23 2007, 11:04
- - add   ЦитатаНу с с выбросом меги8515 действительно можно...   Jul 23 2007, 06:52
|- - ReAl   Цитата(add @ Jul 23 2007, 08:52) Выступлю...   Jul 23 2007, 17:48
- - CD_Eater   ЦитатаГлюк был бы, если бы SBI для этого кристалла...   Jul 23 2007, 14:21
|- - =GM=   Цитата(CD_Eater @ Jul 23 2007, 13:21) Цит...   Jul 24 2007, 14:31
- - add   ЦитатаА m88 - слишком другой кристалл, см. выше. Х...   Jul 23 2007, 19:07
|- - defunct   Цитата(add @ Jul 23 2007, 22:07) А вот м1...   Jul 23 2007, 21:04
- - CD_Eater   ЦитатаЕсть определённое поведение команды, есть ню...   Jul 23 2007, 19:20
|- - ReAl   Цитата(CD_Eater @ Jul 23 2007, 21:20) Эти...   Jul 23 2007, 19:38
- - SasaVitebsk   Спасибо обоим. ReAlу за уточнение нюансов, а CD_Ea...   Jul 23 2007, 21:01
- - CD_Eater   2 ReAl Хорошо, про "глюк программы" нет ...   Jul 23 2007, 21:12
- - ReAl   Цитата(SasaVitebsk @ Jul 23 2007, 23:01) ...   Jul 24 2007, 10:45
- - i.dmitry   Спасибо всем. Все понял.   Jul 24 2007, 16:45
- - CD_Eater   ЦитатаВидимо вы не совсем правы, вот в документе н...   Jul 24 2007, 22:43
|- - =GM=   Цитата(CD_Eater @ Jul 24 2007, 21:43) Всё...   Jul 25 2007, 11:23
- - CD_Eater   Уверяю Вас - если SBI не трогает немодифицируемые ...   Jul 25 2007, 15:12
|- - =GM=   Цитата(CD_Eater @ Jul 25 2007, 14:12) Уве...   Jul 26 2007, 11:25
- - CD_Eater   Вы зря беспокоитесь. Это недоподправленный даташи...   Jul 26 2007, 23:14
- - =GM=   Цитата(CD_Eater @ Jul 26 2007, 22:14) Вы ...   Jul 27 2007, 11:36
- - ReAl   Цитата(=GM= @ Jul 27 2007, 13:36) Расскаж...   Jul 27 2007, 12:55
- - =GM=   Цитата(ReAl @ Jul 27 2007, 11:55) Да хотя...   Jul 27 2007, 13:42
- - ReAl   Опять оффтопим... Цитата(=GM= @ Jul 27 2007,...   Jul 27 2007, 16:59
- - =GM=   Опять как-то неоправданно сложно у вас, а ведь еще...   Jul 27 2007, 21:20
- - singlskv   Цитата(=GM= @ Jul 28 2007, 01:20) 1) Чита...   Jul 27 2007, 23:03
|- - =GM=   Цитата(singlskv @ Jul 27 2007, 23:03) вот...   Jul 28 2007, 09:02
- - ReAl   Цитата(=GM= @ Jul 27 2007, 23:20) Опять к...   Jul 28 2007, 07:01


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

 


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


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