109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 409
|
|
1 | |
ATtiny. Reset, как вывод I/O24.02.2021, 10:22. Показов 2430. Ответов 12
Метки нет Все метки)
(
Всем доброго времени суток.
Для работы потребовалась лишняя нога и я решил использовать RESET в качестве выхода. Изначально отладил программу, все дела. После того, как убедился в работоспособности, перенёс логику на RESET и скинул бит RSDISBL в нолик. После таких манипуляций контроллер перестал работать, порт RESET постоянно скачет (ловит 50 Гц отовсюду). Пока в голове вертится мысль подтянуть порт на землю через резистор. Как с этим бороться? Буду благодарен за любые советы.
0
|
24.02.2021, 10:22 | |
Ответы с готовыми решениями:
12
Выбор правильных вариантов по Git: git reset --hard, git reset --mixed , git reset --soft Attiny24 вывод RESET В чем отличие warm reset от cold reset? |
1182 / 657 / 113
Регистрация: 15.05.2012
Сообщений: 4,063
|
|
24.02.2021, 15:39 | 2 |
В какой среде? (ну не в железе же.)
Тут как-бэ и программа завязана.
0
|
![]() ![]() ![]() 5118 / 4558 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
|
24.02.2021, 16:36 | 3 |
0
|
109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 409
|
||||||
25.02.2021, 12:08 [ТС] | 4 | |||||
МК ATtiny10
Алгоритм работы следующий: 1)ожидание прихода фронта на ногу 1, потом ожидание прихода спада на эту же ногу. По спаду включается таймер. 2)ожидание внешнего прерывания по фронту на ногу 4. По приходе прерывания остановка таймера и сохранение значения счётчика. Запись сохранённых значений в регистр сравнения таймера и перевод таймера в режим счёта вниз. 3)ожидание второго прерывания по ноге 4. По приходе прерывания переход в подпрограмму RUN, понижение частоты тактирования таймера и его запуск. 4)прерывание по обнулению таймера, замыкание ключей на ногах 3 и 6.
Немного ошибся. Переключения на счёт вниз нет. Таймер просто обнуляется, а ранее насчитанное значение сохранятся в регистр сравнения. Далее он считает и сравнивает результат, до достижения этого самого результата. Добавлено через 3 часа 42 минуты +К прошлому посту. Среда - Atmel studio 7.0
0
|
![]() ![]() ![]() 5118 / 4558 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
|
||||||||||||||||
25.02.2021, 13:40 | 5 | |||||||||||||||
DarkPtect, первая ошибка, которую заметил: где инициализация вершины стека?
Еще непонятные моменты: 2) Разрешение прерывания таймера по переполнению, а вектора отработки нет. Куда попадет?
О переходах из прерываниях в основной цикл, постоянных cli/sei, обнулениях регистра я уже молчу. Не ошибка, но режет глаз ![]()
0
|
109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 409
|
|
25.02.2021, 22:45 [ТС] | 6 |
1) Для чего это требуется, если не сложно, то разъясните или скиньте литературу, потому что я в программировании МК Алёша. Лучше прям физический смысл этого.
2) Прерывание по переполнению не требуется, при работе в штатном режиме таймер переполнятся не будет. Работа внештатном режиме не предусмотрена. 3) МК переходи в режим sleep после первого внешнего прерывания по 4 ноге. 4) Регистр r17 служит для проверки, поэтому это нормально. Подправлю по вашим замечаниям и попробую. Опять же, помечу, что при работе не со сброшенным резетом всё работает хорошо, да, программа требует доработок, но она функционирует.
0
|
109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 409
|
|
26.02.2021, 08:08 [ТС] | 8 |
Ну, кстати, по инициализации стека спасибо огромное. Теперь, действительно, у мк начальное состояние строго определено и работать стало легче. Однако, пин с reset всё равно прыгает туда-сюда. гляну осциллом, чтобы точно знать прыгает ли сам порт или наводится помеха
0
|
1182 / 657 / 113
Регистрация: 15.05.2012
Сообщений: 4,063
|
|||||||||||
26.02.2021, 09:17 | 9 | ||||||||||
Добавлено через 3 минуты
0
|
![]() 1978 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
|
|
26.02.2021, 11:56 | 10 |
..."cli/sei" в прерываниях применять не надо (в вашем случае). Проблема не большая, но... Может, имеет смысл написать программу на Си? Размер получится, скорее всего меньше и эффективнее. А самое главное - не будет иметь ошибок, которые вы уже обсудили.
0
|
109 / 81 / 37
Регистрация: 13.01.2016
Сообщений: 409
|
|
26.02.2021, 13:38 [ТС] | 11 |
cli и sei я расставил везде, где только можно, потому что планировались различные ситуации, когда контроллер выходит из прерываний не по их окончании, а через метку, в таком случае флаги сами не устанавливались. Программа тоже менялась и на момент её написания проще было поставить везде эти штуки.
Ещё заметил такую штуку: Работа осуществляется на напряжении 3,3 В. Управляющая команда 5 В. При подаче управляющей команды на порты, которые должны её принимать, на ноге с RESETом напряжение стабилизируется (но только на то время, пока присутствует команда) и при этом уровень становится порядка 4 В.
0
|
![]() |
|
26.02.2021, 14:12 | 12 |
Про стек ничего не слышали?
Не слышали что в прерываниях нужно сохранять/восстанавливать используемые регистры? Используйте лучше ЯВУ. Меньше вероятности допустить ошибку.
0
|
1182 / 657 / 113
Регистрация: 15.05.2012
Сообщений: 4,063
|
|
26.02.2021, 14:45 | 13 |
0
|
26.02.2021, 14:45 | |
Помогаю со студенческими работами здесь
13
как подключить Attiny+SD? как правильно принять DMX сигнал на Attiny? Reset PC - как выполнить? как сделать Reset Как делать CMOS reset? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Неблокируемый стек в C++26: реализуем простой сборщик мусора
stackOverflow 02.03.2025
Многопоточные приложения требуют надежных и производительных структур данных, способных эффективно работать в условиях конкурентного доступа. Неблокируемые структуры данных представляют собой особый. . .
|
Шаблон REQ/REP в ZeroMQ: сверхбыстрый обмен сообщениями в C++ и Python
stackOverflow 02.03.2025
Построение высоконагруженных распределенных систем требует надежного и производительного механизма обмена сообщениями. ZeroMQ выделяется среди прочих решений своей невероятной скоростью работы и. . .
|
Нестандартные приемы работы с итераторами в C++
stackOverflow 02.03.2025
Итераторы - один из краеугольных камней C++, предоставляющий универсальный механизм обхода и манипуляции данными в контейнерах. Появившись как замена небезопасным указателям, они эволюционировали от. . .
|
Лексический анализ и регулярные выражения в C++26
stackOverflow 02.03.2025
Лексический анализ - ядро любого компилятора и инструмента обработки текста. Каждый программист сталкивается с задачами парсинга строк, обработки файлов конфигурации или анализа пользовательского. . .
|
Подробно о std::mdspan в C++23
stackOverflow 02.03.2025
Работа с многомерными массивами данных традиционно была одной из сложных задач в C++. Программистам приходилось создавать собственные абстракции или использовать сторонние библиотеки для эффективной. . .
|
Колмогоровская сложность в C++: Путь к совершенному коду
stackOverflow 02.03.2025
Абстрактная математическая теория Колмогорова стала мощным средством оценки и улучшения программного кода. Сложность алгоритма - не только в его вычислительной эффективности, но и в том, насколько. . .
|
Изменения в C# 14
stackOverflow 02.03.2025
Одно из самых значимых изменений в C# 14 - поддержка коллекционных выражений, которые позволяют создавать и инициализировать коллекции с помощью нового лаконичного синтаксиса. Это нововведение. . .
|
Разработка кроссплатформенного мобильного приложения для iOS/Android на C++
bytestream 02.03.2025
C++ как язык программирования высокого уровня с прямым доступом к аппаратным ресурсам позволяет создавать приложения, работающие одинаково быстро как на iOS, так и на Android устройствах. Ни для кого. . .
|
Аутентификация/авторизация на Golang
bytestream 02.03.2025
Go предлагает множество возможностей для создания надежных систем аутентификации. Встроенные криптографические пакеты, высокая производительность и простота параллельной обработки запросов делают его. . .
|
Нововведения TypeScript 5.8
bytestream 02.03.2025
TypeScript 5. 8 приносит много возможностей и оптимизаций, которые существенно расширяют границы типобезопасного программирования на JavaScript. Эта версия включает ряд значительных улучшений в работе. . .
|