Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт мар 28, 2024 12:32:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 318, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 14:15:34 
Друг Кота

Карма: 64
Рейтинг сообщений: 964
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4210
Откуда: Ижевск
Рейтинг сообщения: 0
Гефестион Имелось ввиду другое. С какими флагами в SREG программа войдет в обработчик неизвестно, поэтому смысл breq Decr после команды SBIS неясен.
Код:
           sbis PIND,3
           RJMP Decr
;           sbis portD,3
;           breq Decr ;
           inc Steps
           rjmp uart_snt
Decr:           dec Steps

Вы не можете командой CLI помешать установке флага требования прерывания INT0 из-за дребезга. Поэтому команда SEI в обработчике вновь вызовет
оный...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 14:16:51 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 87
Зарегистрирован: Вт фев 09, 2010 02:04:53
Сообщений: 2018
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Кстати, если в прерывании не сбросить флаг I, в это время может произойти другое прерывание (например, по таймеру) ? или пока не будет reti, все прерывания запрещаются автоматически?

_________________
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 14:23:23 
Друг Кота

Карма: 64
Рейтинг сообщений: 964
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4210
Откуда: Ижевск
Рейтинг сообщения: 0
Если прерывание локально разрешено, то при возникновении оного и переходе в обработчик флаг I сбрасывается аппаратно. При выходе по RETI - устанавливается также аппаратно. В отличие от команды RET, которая I флаг не меняет.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 16:17:55 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 87
Зарегистрирован: Вт фев 09, 2010 02:04:53
Сообщений: 2018
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Возник очередной вопрос. Подключил кнопку на PB7, разрешил прерывания PCIE и PCINT7. Т.е. любое изменение логического состояния на этой ноге будет вызывать прерывание. К сожалению, в отличие от входов INT0, INT1 для PCIE нельзя настроить срабатывание только по фронту или срезу, т.е. кнопка выдаст два прерывания: при нажатии и отпускании. Как сделать так, чтобы кнопка срабатывала только один раз? Как я понял из предыдущих сообщений, запрещать прерывания бессмысленно, т.к. если флаг соответствующего прерывания установился, то как только прерывания будут разрешены (даже если через несколько секунд), это прерывание произойдёт.

_________________
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))


Вернуться наверх
 
Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 16:39:50 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
Начинаем вот с чего. Зачем вам вешать кнопку на внешнее прерывание? Это требуется только в одном случае. Энергосбережение. Будить МК при нажатии на кнопку. Развиваем дальше тему. Кнопка - человекоинтерфейс. То есть медленный. Реакция десятки миллисекунд. Исходим из целесообразности. На куа, спрашивается, вам реакция в доли-единицы микросекунд? Если вы просто физически ничего не успеете сделать? Простой пример. Можете почитать в интернете. Есть такой прикол с денежной купюрой или карандашом. Один человек держит купюру или карандаш, отпускает. Второй человек должен поймать. Так вот. Это практически физически невозможно. Потому что реакция обычного, нетренированного человека - 0,2 с.
Кстати, нашел эту статью.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 18:35:28 
Опытный кот
Аватар пользователя

Карма: 10
Рейтинг сообщений: 112
Зарегистрирован: Пт ноя 30, 2007 14:40:44
Сообщений: 714
Рейтинг сообщения: 0
Практика показывает обратное. При тяжёлой программе реакция на кнопку будет флегматичной (а энкодер будет давать "прокруты"). Соответственно, если есть 2 лишних INT = одно на кнопку, другое на 1 из электродов энкодера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт янв 18, 2018 19:06:51 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
Практика показывает обратное. При тяжёлой программе реакция на кнопку будет флегматичной (а энкодер будет давать "прокруты"). Соответственно, если есть 2 лишних INT = одно на кнопку, другое на 1 из электродов энкодера.

Это значит, что плохая практика. Я давным-давно использую следующий подход: дробить процессы, так, чтобы итерация основного цикла происходила с запасом за системный тик. Скажем, 1 мс.
Я даже вычисления наловчился дробить. Вычисление квадратного корня со стандартной библиотекой происходит за 2 с чем-то миллисекунды. Это непозволительно долго. Точно не помню, что я там сделал, в общем сделал некоторые переменные статическими, и раздробил вычисление. Чтобы следовать принципу: итерация основного цикла с запасом за 1 мс.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 07:04:42 
Друг Кота

Карма: 60
Рейтинг сообщений: 67
Зарегистрирован: Ср янв 02, 2013 08:37:35
Сообщений: 3342
Рейтинг сообщения: 0
Как сделать так, чтобы кнопка срабатывала только один раз?

Не буду спрашивать зачем тебе это нужно… раз спросил значит нужно! Один из вариантов довольно прост: при нажатии на кнопку – возникает прерывание. В теле прерывания проверяешь состояния логического уровня на входе (в твоём варианте PinB.7).
• Если на ноге лог. 0 значит кнопка нажата – поднимаем флаг сработки кнопки (потом можно в основном теле программы обрабатывать необходимое действие по данному флагу), затем выходим из прерывания.
• Если на ноге лог. 1 – то сразу выходим из прерывания без каких либо действий.
Сброс флага кнопки производишь после выполнения необходимых действий по данному флагу.

Такой алгоритм имеет месту быть не для всех вариантов… зависит от твоих задач.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 07:43:36 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Этот вариант чреват дребезгом/пропуском нажатия кнопки. Возникло прерывание от нажатия... и пока мы читаем значение на пине процесс дребезга допустим разомкнет кнопку и мы прочитаем "1" - нажатия вроде бы как и небыло...

Поэтому... прерывания на кнопки использоват ТОЛЬКО для пробудки контроллера, а в остальном - сканировать их с периодом в 20мс. И дребезг в таком варанте не страшен пока он длится МЕНЬШЕ 20мс - а это уже очень убитые кнопки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 09:11:11 
Друг Кота

Карма: 60
Рейтинг сообщений: 67
Зарегистрирован: Ср янв 02, 2013 08:37:35
Сообщений: 3342
Рейтинг сообщения: 0
Поставив на порт кнопки кондёр в пределах 0,1 мкФ, и при любом дребезге МК проверит вход раньше чем на нём изменится логическое состояние от дребезга контактов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 09:20:00 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
Лишний компонент, лишнее место на плате, лишние затраты.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 09:24:34 
Друг Кота

Карма: 60
Рейтинг сообщений: 67
Зарегистрирован: Ср янв 02, 2013 08:37:35
Сообщений: 3342
Рейтинг сообщения: 0
Но даже если не ставить кондёр, то нажатие кнопки пропустить не получится, так как не в первом прерывании так во втором нажатие кнопки будет зафиксировано.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 10:52:19 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
http://img.radiokot.ru/files/20529/1g6cmrs760.JPG
и НИКАКИХ АНТИДРЕБЕЗГОВ
:hunger:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 11:15:38 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
http://img.radiokot.ru/files/20529/1g6cmrs760.JPG
и НИКАКИХ АНТИДРЕБЕЗГОВ
:hunger:

Что это?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 11:26:44 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1349
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14018
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Емкостная кнопка на основе TP223
Вложение:
TTP223-BA6_SPEC_V2.1.pdf [157.96 KiB]
Скачиваний: 193

готовая платка от братьев-китайцев за 50 рубчиков (в наших краях).
С обратной стороны простая гладкая поверхность для касания.
Допускает 2-3 милиметра пластика над рабочей стороной.
ПРОВЕРЕНО МАКЕТНЫМИ ПЫТКАМИ
:hunger: :hunger:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 11:48:27 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 141
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1382
Рейтинг сообщения: 0
Не уверен что дребезга нет. На предельных расстояниях. Плохо, что одна кнопа…


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 12:44:06 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Не, там и правда дребезга нет - вся обработка уже встроена в чип. Но тормозные они довольно таки.

Кондер на 0.1мкф паралельно кнопке только СНИЖАЕТ вероятность дребезга, а дополнительно эффективно убивает кнопку повышая её дребезг до безумных величин, вплоть до полной неработоспособности кнопки и даже кондер уже не спасает.

Цитата:
так во втором нажатие кнопки будет зафиксировано

Ну да ну да.... скорей пользователь девайс разобъёт после пары дней глючащей кнопки. даже антивандальное исполнение не спасёт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 13:52:43 
Друг Кота

Карма: 60
Рейтинг сообщений: 67
Зарегистрирован: Ср янв 02, 2013 08:37:35
Сообщений: 3342
Рейтинг сообщения: 0
Кондер на 0.1мкф паралельно кнопке только СНИЖАЕТ вероятность дребезга, а дополнительно эффективно убивает кнопку повышая её дребезг до безумных величин, вплоть до полной неработоспособности кнопки и даже кондер уже не спасает.

На чём основаны такие умозаключения? Аргументы будут?
Alexeyslav писал(а):
Цитата:
так во втором нажатие кнопки будет зафиксировано

Ну да ну да.... скорей пользователь девайс разобъёт после пары дней глючащей кнопки. даже антивандальное исполнение не спасёт.

Тут тоже желательно аргументированных утверждений, а не бла бла.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 17:03:54 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 87
Зарегистрирован: Вт фев 09, 2010 02:04:53
Сообщений: 2018
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Начинаем вот с чего. Зачем вам вешать кнопку на внешнее прерывание?
Чтобы зря не опрашивать её в цикле, если она нажимается редко. Плюс не будет гемора с многократным опросом кнопки за время её нажатия, поскольку прерывания происходят только по фронтам.

Добавлено after 1 minute 56 seconds:
Не буду спрашивать зачем тебе это нужно… раз спросил значит нужно! Один из вариантов довольно прост: при нажатии на кнопку – возникает прерывание. В теле прерывания проверяешь состояния логического уровня на входе (в твоём варианте PinB.7).
• Если на ноге лог. 0 значит кнопка нажата – поднимаем флаг сработки кнопки (потом можно в основном теле программы обрабатывать необходимое действие по данному флагу), затем выходим из прерывания.
• Если на ноге лог. 1 – то сразу выходим из прерывания без каких либо действий.
Сброс флага кнопки производишь после выполнения необходимых действий по данному флагу.

Спасибо! Так и сделал, вроде работает. Кнопки зашунтировал конденсаторами 0,1мкФ, дребезга почти нет.

_________________
Фак, кот грызёт провод! Сейчас его ударит либо током, либо тапком! ))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт янв 19, 2018 17:06:13 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2687
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Гефестион писал(а):
Чтобы зря не опрашивать её в цикле, если она нажимается редко. Плюс не будет гемора с многократным опросом кнопки за время её нажатия, поскольку прерывания происходят только по фронтам.
Хорошие кнопки с кондерами могут и не дребезжать, сталкивался с таким, вот только не знаю на долго ли их хватит без дребезга

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 318, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y