|
bit set, C |
|
|
|
Jul 22 2007, 09:14
|

Участник

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

|
Правильно ли я понял: 1) Код TIMSK = (1 << OCIE2); 2) Код TIMSK |= (1 << OCIE2); ---------- В первом случае установится только бит OCIE2, остальные будут нулями. Во втором случае все биты кроме OCIE2 останотся неизменными, а этот бит станет единицей. ---------- Правильно? -dmitry.
|
|
|
|
|
 |
Ответов
|
Jul 22 2007, 18:40
|

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

|
Цитата(i.dmitry @ Jul 22 2007, 12:14)  Во втором случае все биты кроме OCIE2 останотся неизменными, а этот бит станет единицей. Если строго, то не "останутся неизменными", а "в них запишется то, что из них прочиталось". Обычно это одно и то же. Но в регистрах, где есть биты, сбрасываемые записью "1", при такой операции эти биты будут сброшены.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jul 22 2007, 20:17
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(ReAl @ Jul 22 2007, 21:40)  Если строго, то не "останутся неизменными", а "в них запишется то, что из них прочиталось". Обычно это одно и то же. Но в регистрах, где есть биты, сбрасываемые записью "1", при такой операции эти биты будут сброшены. Если хотите говорить строго, то или будьте точны или не будьте так категоричны. Сказанное Вами правильно при работе с регистрами на которые не распространяются команды SBI, CBI (в частности регистра TIMSK). И возможно, это справедливо для некоторых компиляторов. Скажем команда PORTA |= (1<<5); компилятором IAR компильнётся в SBI PORTA,5 что, очевидно, не затронет остальные биты.
|
|
|
|
|
Jul 22 2007, 21:30
|

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); или я не прав?
--------------------
Делай сразу хорошо, плохо само получится
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|