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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> bit set, C
=GM=
сообщение Jul 23 2007, 11:04
Сообщение #16


Ambidexter
*****

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



Цитата(ReAl @ Jul 23 2007, 03:32) *
=GM=, а вот в свете RMW (Read-Modify-Write) сути команды sbi, см. мой ответ SasaVitebsk, я бы её не использовал с такой целью. Лучше запись PINB = (1 << 1) - так Вы гарантированно запишете 1-ку только в один триггер (а если захотите - то инвертируете группу ног)

Понял, спасибо, учту при случае...

Цитата(ReAl @ Jul 23 2007, 03:32) *
Глюк был бы, если бы SBI для этого кристалла было RMW с байтом. К счастью, этого нет в новых кристаллах. Тем лучше

Так что, для новых кристаллов команда SBI перестала быть Read-Modify-Write? Для каких конкретно?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 23 2007, 13:04
Сообщение #17


Гуру
******

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



Цитата(ReAl @ Jul 23 2007, 01:07) *
Так кто из нас неоправданно категоричен?


Вроде как получается оба. smile.gif Я больше. smile.gif

Честно говоря я редко по опросу работаю и на такие грабли как-то ни разу не наступал. А может наступал да не заметил. 07.gif Короче надо внимательно за этим следить. Мегу 64 до этого не пользовал. А вот сейчас, по иронии судьбы, - начал. smile.gif м8515 использовал, но как то пронесло.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Jul 23 2007, 14:21
Сообщение #18


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

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
Глюк был бы, если бы SBI для этого кристалла было RMW с байтом. К счастью, этого нет в новых кристаллах. Тем лучше.

Атмельцы тоже не так глупы, как Вы пытаетесь их выставить. Эти две фичи (инвертирование бита PORTB и особенность инструкции SBI) сильно взаимозависимы и появились в АВРках ОДНОВРЕМЕННО. А именно, в тини13.


Цитата
Выступлю в защиту м8515! Что вам там в ней не нравится? Нормальный кристал! Ног дофига. Цена приличная для серийки. Ну нету АЦП, не во всех задачах он и нужен!

мега88 дешевле и мощнее (SRAM*2). Ну разве только по параметру "удельная стоимость одной ножки" м8515 лучше smile.gif


Цитата
Так что, для новых кристаллов команда SBI перестала быть Read-Modify-Write? Для каких конкретно?

GM, в этой ветке их уже называли как минимум в двух постах. Повторю ещё раз: для всех новых чипов, начиная с тини13.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jul 23 2007, 17:48
Сообщение #19


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

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



Цитата(add @ Jul 23 2007, 08:52) *
Выступлю в защиту м8515! Что вам там в ней не нравится? Нормальный кристал! Ног дофига. Цена приличная для серийки. Ну нету АЦП, не во всех задачах он и нужен!
Вот именно поэтому ("нет, но не во всех и нужен") м8515 нельзя сравнивать с м88, у м8515 есть то, чего нет у м88 - внешняя шина. Но она есть у более мощного кристалла м162, поэтому я согласился с тем, что м8515 "уходит". м8535 - тем более, её можно заменить на целый выводок более мощных кристаллов.
А вот м162 заменить пока не на что. У меня в прошлом году был проектик, в котором стоят м162, epm240t100 и 32кбайт ОЗУ. Ставить туда что-то 64-ногое с внешней шиной вообще неинтересно было - и так пару ног свободных осталось, только более мощную ПЛИС и всё - тоже невыгодно. По ОЗУ что м8515, что м162 - всё равно не проходили, так что в этом смысле можно было и м8515 поставить, но какого-то смысла это не имело. Кажется, цена равна была, а доп UART на терминалку для отладки не помешал.




Цитата(SasaVitebsk @ Jul 23 2007, 15:04) *
Вроде как получается оба. smile.gif Я больше. smile.gif
Ну если считать по числу серийно выпускаемых типов кристаллов, то таки я. А если считать, что неиспользование исправления "некрасивости" в команде, приводящее к незначительному увеличению объёма кода и времени исполнения при работе с некоторыми регистрами - не так плохо, как незнание того, что не всегда так было и ещё бегают кристаллы, где это глюкоопасно - то тогда надо ещё подумать smile.gif

Кстати, а мега32 тоже уже на выброс? Да, я понимаю, мега324 и всё такое, но по цене 32-ая пока выигрывает, кажется.

Цитата
Честно говоря я редко по опросу работаю и на такие грабли как-то ни разу не наступал. А может наступал да не заметил. 07.gif Короче надо внимательно за этим следить. Мегу 64 до этого не пользовал. А вот сейчас, по иронии судьбы, - начал. smile.gif
Дело не только в работе по опросу. В примерах scmRTOS аналоговый компаратор используется для программной генерации прерывания, но иногда надо на некоторое время это прерывание блокировать. Естетсвенно, сбросом/установкой ACIE. Но если не отследить, то прерывание может оказаться потерянным из-за сброса ACI из-за RMW-шности.
Естественно, в scmRTOS это отслежено :-)




Цитата(CD_Eater @ Jul 23 2007, 16:21) *
Атмельцы тоже не так глупы, как Вы пытаетесь их выставить. Эти две фичи (инвертирование бита PORTB и особенность инструкции SBI) сильно взаимозависимы и появились в АВРках ОДНОВРЕМЕННО.
ГДЕ? Где в этой теме я "пытаюсь их выставить"? И, кстати, когда появились ACSR, ADCSR, для которых SBI/CBI могут привести к "неожиданным эффектам" на вполне ещё серийных кристаллах?

Есть определённое поведение команды, есть нюансы её употребления, которые могут привести к глюкам. Я обратил на это внимание.

Вот где Атмел явно "поторопился", так это в распределении SFR на битово адресуемые и не адресуемые, несложно было бы запрещать прерывания на один такт при обращении к двухбайтовым SFR в соответствии со специфицированым порядком, ..., но это обсуждалось много раз.

Кстати, продолжая старый разговор - ну уж после того, как SBI/CBI стали "не-RMW" - их двухцикловость выглядит несколько странной, у них теперь не больше работы, чем у OUT.

Цитата
мега88 дешевле и мощнее (SRAM*2). Ну разве только по параметру "удельная стоимость одной ножки" м8515 лучше smile.gif
По этому параметру AT89S51 всё равно не переплюнуть smile.gif
А m88 - слишком другой кристалл, см. выше. Хотя автора "защиты" этот вопрос, кажется, не волнует.


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


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
А m88 - слишком другой кристалл, см. выше. Хотя автора "защиты" этот вопрос, кажется, не волнует.

:-) очень волнует... Да ставте любой кристал куда вздумается..яж не с флагом вышел типа " даЁшь М8515 каждому крестьянину". Новое поколение кристалов естественно сменяет старое.. кто ж с этим спорит..Но зачем, к примеру, применять более "мощный" чип? разве что по ценнику...или код ну не лезет то понятно..а так вопрос спорный. 8515 раньше появился на свет, а м88 это "сыночек"...ну чуток по продвинутее или что типа того..А так одного поля ягода..Хорошо что Вы не утверждаете что 8-биткам ужо не место на столах эмбедеров.:-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Jul 23 2007, 19:20
Сообщение #21


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

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
Есть определённое поведение команды, есть нюансы её употребления, которые могут привести к глюкам. Я обратил на это внимание.

Эти нюансы уже ушли в прошлое, не цепляйтесь за чипы 5-летней давности. Кстати, даже в глубоком прошлом эти "глюки" были описаны в даташите, этому специально уделено внимание как распространённым ошибкам у начинающих пользователей. Вы, мне кажется, всё пытаетесь обвинить Атмел в потенциальной глючности АВРок. Только, пожалуйста, приводите факты, а не домыслы. Как показывает практика, 99% глюков оказываются следствием невнимательного чтения даташитов.

В принципе, если вместо слова "глюк" в Вашем предложении, которое я процитировал, стояло бы слово "ошибки из-за незнания ДШ", я бы с Вами согласился, такое напоминание об "узких" местах использования АВРок только на пользу. Но это не глюк.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jul 23 2007, 19:38
Сообщение #22


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

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



Цитата(CD_Eater @ Jul 23 2007, 21:20) *
Эти нюансы уже ушли в прошлое, не цепляйтесь за чипы 5-летней давности.
Вы хотите сказать, что надо всем быстро отказаться от применения м162, м32, м64/м128 ?
Но ПОЧЕМУ? Только потому, что давно разработаны?

Цитата
Вы, мне кажется, всё пытаетесь обвинить Атмел в потенциальной глючности АВРок.
Извините, бред.
Кажется. Причём не могу понять - откуда это взялось. То, что я иногда говорю "лучше бы" или даже "плохо, что" этого не означает. Это говорят многие про многое, причём чаще всего про то, что более-менее активно используют, "понимание приходит во время еды". Считал бы АВР потенциально глючными - не использовал бы их.
Или я должен подпрыгивать с транспарантом "лучше нету АВР-ок, Атмел-чемпион", чтобы никому не казалось, что я обвиняю Атмел?

Цитата
Только, пожалуйста, приводите факты, а не домыслы. Как показывает практика, 99% глюков оказываются следствием невнимательного чтения даташитов.

В принципе, если вместо слова "глюк" в Вашем предложении, которое я процитировал, стояло бы слово "ошибки из-за незнания ДШ", я бы с Вами согласился, такое напоминание об "узких" местах использования АВРок только на пользу. Но это не глюк.
Я позволил себе выделить. Итого статистичиески в 99% случаев допустимо применять слово "глюк" вместо длинного словосочетания.
Глюк программы - это когда она временами ведёт себя странно. Если не учесть "нюансы" - вероятность этого увеличится.
Я говорил о глюках программы, а не кристалла. Причём с самого начала говорил о том, что надо учитываеть имеющееся поведение, а не о том, что имеющееся поведение глючное (т.е. есть глюк кристалла).


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


Гуру
******

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



smile.gif
Спасибо обоим. ReAlу за уточнение нюансов, а CD_Eaterу за введение в курс сегодняшнего состояния кристаллов.

Честно говоря не секрет, что даташиты читаются плохо. По разным причинам. Конечно немаловажная причина - недостаточное знание языка оригиналов. Непростительная причина - банальная лень. Но ещё хуже обстоит дело с перечитыванием этих даташитов. Мельком взгляд бросаешь - да всё то же, - ан нет есть нюанс мелким подчерком.

Вы меня жутко заинтриговали ReAl. smile.gif У Вас не бывало иногда такого состояния когда Вы смотрите на свою программу и вродебы нашли хомут дичайший. "Боже! Как оно вообще могло работать! 07.gif Блин, но ведь работало лет пять без проблем." Ну а потом выясняется что было всё правильно, а вы разбирая свою же прогу не усмотрели какой нибудь мелочи.
Вот так Вы сегодня меня в ступор ввели. Ну и я бросился некоторые свои исходники пересматривать. Оказывается в большинстве проектов флаги вообще не сбрасываются. Обхожусь аппаратным сбросом по прерываниям и т.п. Но в двух местах обнаружил. И что же -- сброшено правильно.

Видимо всётаки когда-то наступал на эти грабли, но забыл. Старость не радость. Склероз. biggrin.gif
Go to the top of the page
 
+Quote Post
defunct
сообщение Jul 23 2007, 21:04
Сообщение #24


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(add @ Jul 23 2007, 22:07) *
А вот м162 заменить пока не на что.

в m162 - все хорошо.. вот только JTAG выведен "по-козьи".
Сплошное мучение с отладкой в 4k..
Цитата(add @ Jul 23 2007, 22:07) *
яж не с флагом вышел типа " даЁшь М8515 каждому крестьянину".

А его таки в прямом смысле слова "дают каждому крестьянину" в придачу с STK500..
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Jul 23 2007, 21:12
Сообщение #25


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

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



2 ReAl
Хорошо, про "глюк программы" нет возражений smile.gif

Кстати, насчёт возможной однотактовости SBI. Представьте, что это всё же сделали бы. Тогда единая на все АВРки таблица "AVR instruction set" перестала бы быть универсальной, появились бы трудно отслеживаемые различия в количестве тактов на разных чипах. Многие проекты полагаются на растактовку инструкций, и при переносе старого проекта на новый чип потребовалось бы ПЕРЕСЧИТЫВАТЬ такты участков, использующих SBI/CBI. Это намного сложнее, чем, например, заменить идентификаторы портов или их битовых полей. Обычно при переводе проекта на более новый чип требуется подкорректировать работу с периферией, это сделать нетрудно т.к. просмотром исходника легко выделить те места, в которых эта периферия используется. А попробуйте просмотром исходника (не Вашего) понять, зависит ли корректная работа программы от длительности исполнения найденной инструкции. Короче, проблем бы это добавило и Атмельцам (перелопачивать ядро), и разработчикам (переносить проекты). А так какая красота: таблица инструкций общая на всё семейство, ядро совместимо снизу вверх! Лепота!

Сообщение отредактировал CD_Eater - Jul 23 2007, 21:13
Go to the top of the page
 
+Quote Post
ReAl
сообщение Jul 24 2007, 10:45
Сообщение #26


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

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



Цитата(SasaVitebsk @ Jul 23 2007, 23:01) *
У Вас не бывало иногда такого состояния когда Вы смотрите на свою программу и вродебы нашли хомут дичайший. "Боже! Как оно вообще могло работать! 07.gif Блин, но ведь работало лет пять без проблем." Ну а потом выясняется что было всё правильно, а вы разбирая свою же прогу не усмотрели какой нибудь мелочи.
Бывало и не раз :-), часто в ситуации "а как я это тогда сделал, сейчас опять надо". В этих случаях я иду на нарушение правила "не редактировать старые исходники в архиве" и дописываю комментарий (если его не было, если же был - то ступор и не возникает).

Цитата(CD_Eater @ Jul 23 2007, 23:12) *
Кстати, насчёт возможной однотактовости SBI. Представьте, что это всё же сделали бы.
...
Короче, проблем бы это добавило и Атмельцам (перелопачивать ядро), и разработчикам (переносить проекты).
Да прекрасно представляю, что такое сохранять совместимость со старыми "особенностями" sad.gif
Потому и сказал "будет выглядеть странно" (например, для того, кто не знает, что раньше оно было RMW), а не "и чего они не сделали однотактовой".
Лучше бы wink.gif они сразу так сделали


Наоффтопили мы тут... Придёт лесник и всех разгонит...


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jul 24 2007, 14:31
Сообщение #27


Ambidexter
*****

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



Цитата(CD_Eater @ Jul 23 2007, 13:21) *
Цитата(=GM= @ Jul 23 2007, 10:04) *
Так что, для новых кристаллов команда SBI перестала быть Read-Modify-Write?

GM, в этой ветке их уже называли как минимум в двух постах. Повторю ещё раз: для всех новых чипов, начиная с тини13

Видимо вы не совсем правы, вот в документе на тайни говорится: "Do not use Read-Modify-Write instructions (SBI and CBI)..."(с.132, 133), т.е. явно указывается, что это всё-таки Read-Modify-Write инструкции.

С другой стороны там говорится "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" (с.23, 216)

Выходит поведение CBI/SBI зависит от того, присутствуют там подобные флаги или нет. Кто-нибудь может прояснить ситуацию?

Вообще, интересно бы узнать, как атмельцы сделали, что неудобные флаги не сбрасываются.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 24 2007, 15:07
Сообщение #28


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(ReAl @ Jul 24 2007, 15:10) *
Наоффтопили мы тут... Придёт лесник и всех разгонит...

А лесник никуда и не уходил.
Если автору уже всё ясно, пора бы и закончить.
Go to the top of the page
 
+Quote Post
i.dmitry
сообщение Jul 24 2007, 16:45
Сообщение #29


Участник
*

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



Спасибо всем. Все понял.
Go to the top of the page
 
+Quote Post
CD_Eater
сообщение Jul 24 2007, 22:43
Сообщение #30


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

Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595



Цитата
Видимо вы не совсем правы, вот в документе на тайни говорится: "Do not use Read-Modify-Write instructions (SBI and CBI)..."(с.132, 133), т.е. явно указывается, что это всё-таки Read-Modify-Write инструкции.

С другой стороны там говорится "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" (с.23, 216)

Всё просто - часть даташита подредактировали, другую часть забыли. Такое бывает нередко. В одной из будущих ревизий где надо подправят smile.gif

А Вы подумали, что действие SBI зависит от номера порта???
Go to the top of the page
 
+Quote Post

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

 


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


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