Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Мурик »

ПростоНуб писал(а):Ведь удобней ехать пассажиром, чем самому крутить баранку
Согласен. :) Если за проезд взяли бы столько или меньше чем я потратил бы на топливо, по почему бы не поехать с комфортом на месте пассажира? :)
Реклама
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ПростоНуб »

[uquote="Мурик",url="/forum/viewtopic.php?p=3469438#p3469438"]потратил бы на топливо[/uquote]
Нет, еще взяли бы за аммортизацию такси, а свое авто предложили бы Вам выбросить ;)
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Мурик »

Вы это про AVR. :))) Спасибо не надо. :)
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ПростоНуб »

[uquote="Мурик",url="/forum/viewtopic.php?p=3469463#p3469463"]Вы это про AVR. :))) Спасибо не надо. :)[/uquote]
Если вы не полный дебил, то должны понимать, что в этой теме люди задают вопросы о МК АVR, котрый у них уже есть. А Вы, своими рекламными слоганами про STM способны только вызвать отторжение как к себе, так и ко всей продукции STMicro.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Гефестион
Поставщик валерьянки для Кота
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Гефестион »

Увеличил частоту TWI до 40 кГц (до этого было 10), индикация дёргаться перестала. И тут прихожу через несколько часов - динамическая индикация встала, ярко горит последняя цифра :evil: Значит, контроллер завис в прерывании от RTC и не может из него выбраться (вложенные прерывания то я запретил). Значит, он ожидает от шины ответа, а она не отвечает. И вот как отследить, что шина TWI зависла и перезапустить её?
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение WiseLord »

Таймаут добавить. Не просто висеть в цикле while (при ожидании флагов start/stop/ack), а декрементировать в нём переменную, при достижении нуля выходить из цикла с ошибкой.
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение VladislavS »

[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3469152#p3469152"]тоже в SOP-8, так как габариты имеют значение.[/uquote]Это уже противоречие. Вам же показали корпуса в разы меньше, чем SO-8 nри в разы большем количестве выводов. SO-8 это 6x5,4 мм и 8 ног - это монстр просто.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ПростоНуб »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3469750#p3469750"]Это уже противоречие[/uquote]
Никакого противоречия
[uquote="VladislavS",url="/forum/viewtopic.php?p=3469750#p3469750"]в разы большем количестве выводов[/uquote]
Именно. И для них надо развести дорожки на плате, которые займут места больше, чем сам корпус. Или Вы будете сейчас описывать преимущества многослойных плат?

[uquote="VladislavS",url="/forum/viewtopic.php?p=3469750#p3469750"]SO-8 это 6x5,4 мм и 8 ног - это монстр просто.[/uquote]
Мне предложили не меньших монстров. Или TSSOP-20 6.5x6.5, или LQFP32 7x7. Если это "корпуса в разы меньше" - подучите арифметику.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение VladislavS »

Во-первых, кто заставляет все ноги разводить. А вот когда понадобится 7-ю ногу в so-8 нигде не возьмешь. Во-вторых, я чип 3х3 предлагал. Там и 2х2 есть, но это не под наше производство.
Аватара пользователя
Гефестион
Поставщик валерьянки для Кота
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Гефестион »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3469743#p3469743"]Таймаут добавить. Не просто висеть в цикле while (при ожидании флагов start/stop/ack), а декрементировать в нём переменную, при достижении нуля выходить из цикла с ошибкой.[/uquote] Ок, сделал. Я так понимаю, что при возникновении ошибки нужно перезапустить модуль TWI? Для этого достаточно просто "передёрнуть" бит TWEN в регистре TWCR?
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18629
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение ARV »

по-хорошему надо бы выяснить, что за ошибка.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Ivanoff-iv
Друг Кота
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Ivanoff-iv »

конечно... если даже в простых схемах/программах костыли, то что же будет дальше?
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

В принципе...
От длительного зависона WDT спасает и без дополнительных счетчиков...
:roll:
Аватара пользователя
Гефестион
Поставщик валерьянки для Кота
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Гефестион »

[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3469987#p3469987"]конечно... если даже в простых схемах/программах костыли, то что же будет дальше?[/uquote]
Я не думаю, что это программная ошибка. Скорее всего, это прилетает помеха от импульсного преобразователя (у меня на этой плате стоит повышающий DC-DC) и от этого TWI глючит.

Добавлено after 50 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=3470016#p3470016"]От длительного зависона WDT спасает и без дополнительных счетчиков...
:roll:[/uquote] Вот да, щас как раз думаю в этом направлении.
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение BOB51 »

Корректную программу на ассемблере может вышибить в "глюк" только искровой разряд с зажигалки для газплиты в шину питания устройства. И то... не во всех случаях...
8)
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Alexeyslav »

Ждать что-то в прерывании - вот самый большой глюк. Не надо ничего ждать в прерывании, это изначально порочная практика.
Почему бы информацию не считывать в основном потоке, а в прерывании только выставить флаг что "пора читать".
Vaha
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пт окт 11, 2013 20:43:07
Откуда: с. Муравлёвка Измаильский р-н.

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Vaha »

Здравствуете.
У кого установлена AVR Studio версии 4.19 и ниже, уделите минут пять, погоняйте код (приложеный)
Таймер/счетчик-1 запрограммирован "Fast PWM" 8-бит. При отладке в AVR Studio (пробовал версии 4, 4.13, 4.18, 4.19) Т/С-1 ведет себя как "Phase correct PWM" (TCNT - счетный регистр должен при "Fast PWM" от "0" досчитать до "FF", выставить флаг переполнения, сброситься в "0" и опять до "FF"... , у меня при отладке "TCNT" от "0" считает до "FF", после от "FF" считает до "0", выставляет флаг переполнения и т.д. ...?). Если и у Вас так-же - наверно глюк студии, если нет - буду копать дальше - переустанавливать винду и т.д. ...
В Протеусе все работает.
В AVR Studio 5.1 - отладка проходит правильно, но не могу при отладке регистры периминовать, так, как они в программе обозваны директивой ".def" -? Может кто знает как при отладке можно регистры переименовывать в AVR Studio 5.1?
Вложения
Fast-PWM.rar
(48.03 КБ) 220 скачиваний
Аватара пользователя
Гефестион
Поставщик валерьянки для Кота
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Гефестион »

[uquote="Alexeyslav",url="/forum/viewtopic.php?p=3471178#p3471178"]Ждать что-то в прерывании - вот самый большой глюк. Не надо ничего ждать в прерывании, это изначально порочная практика.
Почему бы информацию не считывать в основном потоке, а в прерывании только выставить флаг что "пора читать".[/uquote] Согласен, я практически всё делаю в прерываниях, а в основной программе лишь "заглушка" rjmp PC. Тогда такой вопрос. Мне нужно, чтобы некоторый кусок кода в основной программе выполнялся не в замкнутом цикле, а только после выхода из прерывания. Т.е. выполнили однократно этот кусок кода и ждём прерывания. Вышли из прерывания и снова однократно выполнили этот код. Т.е. можно ли как-то из прерывания выйти не туда, откуда оно было вызвано? Или у меня в принципе подход неверный?
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Alexeyslav »

Это в принципе подход неверный. Прерывание должно вернуть управление ровно туда откуда было вызвано и точка. Максимум что можно сделать - в прерывании выставить флаг в отдельной переменной а в основном потоке тупо пасти его и делать какое-то действие если он возникнет, не забыв сбросить.

Даже сразу наборчик макросов для этих целей припасён.
СпойлерДолжен быть объявлен регистр с "флагами" под символическим именем именем flags.

Код: Выделить всё

.macro set_flag
  SET
  BLD   flags, @0
.endmacro

.macro clr_flag
  CLT
  BLD   flags, @0
.endmacro

.macro go_if_flag
  BST    flags, @0
  BRTS   @1
.endmacro

.macro go_if_noflag
  BST    flags, @0
  BRTC   @1
.endmacro
Аватара пользователя
Гефестион
Поставщик валерьянки для Кота
Сообщения: 2022
Зарегистрирован: Вт фев 09, 2010 02:04:53
Откуда: Санкт-Петербург

Re: Ассемблер (ASM) для AVR в вопросах и ответах

Сообщение Гефестион »

Хорошая идея с флагом Т :beer: Я про него забыл :oops:
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))
Ответить

Вернуться в «AVR»