|
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, 23:43
|
Частый гость
 
Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595

|
Цитата из ДШ мега48 Some of the Status Flags are cleared by writing a logical one to them. Note that, unlike most other AVRs, the CBI and SBI instructions will only operate on the specified bit, and can therefore be used on registers containing such Status Flags. The CBI and SBI instructions work with registers 0x00 to 0x1F only. И такое поведение команд CBI и SBI свойственно для всех АВРок, начиная с тини13, то есть, все выпущенные за последние 3 года модели. Неужели некоторые уже 3 года не читали даташитов? А вера здесь не при чём. А атмегу64 и 8515 выбросьте, пожалуйста. Им не место на столе эмбеддера. Цитата Посмотрите для них картинку 10.2 - структуру порта, там триггер в PORT через инвертор может получить своё состояние себе на вход при записи "1" в PIN (элемент И на управление мультиплексором и стробом записи). Цитата Кстати, интересно - проверьте (мне лень макетку с мегой48 доставать). Если SBI и на PIN* себя ведёт так же, как и на ACSR (странно будет, если по-другому) то после SBI PINB,... на порту B переключится на противоположное состояние PULL-UP-ов на тех входах, на которых в этот момент была 1-ка. Выход триггера PORT соединён с ножкой микросхемы через повторитель (см. ту самую схему), поэтому внешний потенциал на ножке никак не может повлиять на операции с этим триггером. В случае, когда ножка работает как вход, то запись 1 в PINB приведёт к инверсии соответствующего бита PORTB. Разница лишь в том, что в режиме выхода этот порт определяет уровень на ножке выхода, а в режиме входа - подтяжку. Поэтому в режиме входа запись единички в PINB будет инвертировать пул-апы. Ничего удивительного. Собственно, это следует из ДШ. Никакого глюка тут нет.
Сообщение отредактировал CD_Eater - Jul 23 2007, 00:10
|
|
|
|
|
Jul 23 2007, 04:32
|

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

|
Цитата(CD_Eater @ Jul 23 2007, 01:43)  Неужели некоторые уже 3 года не читали даташитов? Да легко. Некоторые вон плохо себе представляют, как и где в С автоматические переменные создаются и что они не есть угрозой для реентрабельности - и ничего, живут и часто их интересно послушать. Цитата А атмегу64 и 8515 выбросьте, пожалуйста. Им не место на столе эмбеддера. Ну с с выбросом меги8515 действительно можно согласиться, пусть даже она самим атмелом в устаревшие не записана, а что с мегой162 будем делать? Ей-то замены пока нет, хоть ей и больше 3 лет. А почему меге64/128 не место - я не пойму. Личная неприязнь? Цитата Поэтому в режиме входа запись единички в PINB будет инвертировать пул-апы. Ничего удивительного. Собственно, это следует из ДШ. Никакого глюка тут нет. Тут нет, я ещё не настолько туп. Глюк был бы, если бы SBI для этого кристалла было RMW с байтом. К счастью, этого нет в новых кристаллах. Тем лучше.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
Сообщений в этой теме
i.dmitry bit set Jul 22 2007, 09:14 alux Совершенно верно.
В апноте avr035 все подробно опи... Jul 22 2007, 09:54 ReAl Цитата(i.dmitry @ Jul 22 2007, 12:14) Во ... Jul 22 2007, 18:40 SasaVitebsk Цитата(ReAl @ Jul 22 2007, 21:40) Если ст... Jul 22 2007, 20:17  =GM= Цитата(SasaVitebsk @ Jul 22 2007, 20:17) ... Jul 22 2007, 21:30   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  =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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|