увеличить количество аппаратных прерываний в ардуино

6 Янв 2020
122
-4
не хватает 5 прерываний
почему 5-ти?
Их в Меге вроде 6...
Про псинт-то я слышал, но, может, есть способ как-то обойтись без них, ради одного прерывания.
Его нога микросхемы просто висит в воздухе? или куда-то выведена, куда можно поскоблить и припаяться?
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,974
633
45
Про псинт-то я слышал, но, может, есть способ как-то обойтись без них, ради одного прерывания.
PCINT заменят вам все ваши прерывания. А оставшиеся можете применить на другие цели.
 
  • Лойс +1
Реакции: poty

poty

★★★★★★✩
19 Фев 2020
3,237
942
@avan, есть ещё аналоговый компаратор. Не знаю есть ли библиотека, но как и с PCINT - нет никакой проблемы настроить через регистры.
 
  • Лойс +1
Реакции: te238s

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,416
976
58
Марий-Эл
Где Вы раньше были???
Я давно здесь сижу.
Могу отдать плату с запаянным чипом.
Мне они не нужны.
Могу для STM32 платы продать.
Могу под Ваши нужды платы разработать.
И нужно уходить от AVR
 
6 Янв 2020
122
-4
@Эдуард Анисимов,

понял. Спасибо. возможно, со временем дозрею до одного или нескольких Ваших предложений.
Но пока хочу сделать в рамках имеющейся Меги 2560, надеясь, что её хватит для моего конкретного устройства.
По ходу модифицирую задачу, точнее, её метод решения.
Ищу разные подходы в рамках очень ограниченного времени, хотя, возможно, в чём-то глобально заблуждаюсь.
Не могу получить ответ на вопрос: когда USART по RX0 принимает пачку 512 байт, процессор 2560 Мега может ли выполнять свою основную программу,
Или он занят этим приёмом?
 
Изменено:

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,416
976
58
Марий-Эл
Или он занят этим приёмом?
Если писать ручками, а не ArduinoIDE, то принцип такой.
Пока UART занимается приёмом, ядро делает что ему нужно.
После окончания UART вызывает прерывание.
Ядро считывает данные с регистра UART и размещает там где нужно.
После чего ядро может заниматься своими делами. До следующего байта.
Таким образом принимается вся пачка.

У STM32 можно сделать по другому.
Инициализируется UART с DMA. Пока принимается 512 байт, ядро занимается своими делами.
Когда пачка принята, DMA вызывает прерывание и ядро должно обработать принятую пачку.
 
  • Лойс +1
Реакции: te238s и avan

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,416
976
58
Марий-Эл
Про ESP ничего сказать не могу. Я купил её себе, а потом просто подарил начинающему студенту. Не зашла.

Или применительно к стм - дма всё-таки аппаратный механизм?
Полностью аппаратный.
А ПДП в STM может работать с любой периферией, которая есть на кристалле.
Это позволяет разгрузить ядро от заботы заниматься периферией. Я уже скидывал код, в котором ПДП в связке с таймером управляет трёхфазным двигателем. Там ядро не задействовано вообще, от слова совсем, за исключением момента пересчёта таблицы синусов.
AVR хороша только для изучения языка и методов программирования. Для серьёзных устройств она уже не катит. Только для простых.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,416
976
58
Марий-Эл
@avan, Я тоже начинал на PIC контроллерах, но всё изменилось, когда мне подарили STM.
И STM это не Майбах, но уже представительский класс.
Особенно меня порадовало количество и качество таймеров. Это просто сказка.
У меня есть проект, где всё в реалтайме и задействовано 6 таймеров. Это вообще сказка.
А исходный проект был сделан на AVR и delay(). Тормозило жутко.
Кроме всего прочего, я фирме ST отписываю глюки и несуразности их IDE, и, как не странно, они прислушиваются.
Все ошибки, что я им скидывал, они исправили.
 
  • Лойс +1
Реакции: vortigont
6 Янв 2020
122
-4
@vortigont,
Спасибо, приму к сведению при разработке следующего поколения своего устройства.