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

 
 
> 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
Ответов
CD_Eater
сообщение Jul 22 2007, 23:43
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 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
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jul 23 2007, 04:32
Сообщение #3


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

Группа: Свой
Сообщений: 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 с байтом. К счастью, этого нет в новых кристаллах. Тем лучше.


--------------------
Ну, я пошёл… Если что – звоните…
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
- - 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


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

 


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


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