Нужна помощь, не могу управлять выводами ATmega88

prombez

✩✩✩✩✩✩✩
16 Янв 2024
3
0
Программирую atmega88PA в среде ардуино, используя ядро MiniCore.
Уже написанная и опробованная на ардуино УНО программа отказывается работать в mega88.
Симптомы такие:
обращение к пинам так -
digitalWrite (PB3, HIGH)- не работает
digitalWrite (15, HIGH) - не работает
PORTB = B0000010 - вот так работает.
Так же криво работает delay, и непонятно как задавать аргумент функции attachInterrupt (int0, int0 не принимает.
Почему так и как побороть ??
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,975
634
45
Вам уже задавали вопрос: Под какую плату (в настройках) компилируется программа?
 

bort707

★★★★★★✩
21 Сен 2020
3,075
915
PORTB = B0000010 - вот так работает
И в чем дело? Напишите свои функции по типу digitalRead и Write на основе портов и пользуйтесь.

А вообще, atmega88 отличается от атмеги328 (той что в Уно и Нано) только обьемом памяти, все порты и периферия у них одинаковы, атмегу88 можно программировать в обычной Ардуино без всякого мини-коре, достаточно лишь добавить описание МК в файл boards.txt
 
  • Лойс +1
Реакции: prombez

bort707

★★★★★★✩
21 Сен 2020
3,075
915
Вам уже задавали вопрос: Под какую плату (в настройках) компилируется программа?
Небось под тини88 собирает - а потом удивляется что не работает.
Автор, тини88 и атмега88 - это разные семейства МК они несовместимы по регистрам
 

PiratFox

★★★★★✩✩
13 Фев 2020
1,703
474
эта плата взялась из ядра MiniCore
Кривое ядро, многие кто с ним работал так говорят. Я бы посоветовал работать с платой из базового пакета ардуино, называется она Arduino NG or older. В этой плате выбрать контроллер ATmega8. Должно проканать. ;)
 
  • Лойс +1
Реакции: Boroda22

Bruzzer

★★★✩✩✩✩
23 Май 2020
501
149
Atmega8 и Atmega88 это разные МК
Чтобы ваш вопрос из первого поста не выглядел как троллинг,
надо написать
  • на какой пин вы хотите вывести данные
  • привести разные варианты пытающиеся вывести на ЭТОТ пин
  • написать какой работает, как вы хотели.

Если вы при этом будете выводить в serial соответствующие обозначения пина (которые сейчас PB3 15 B0000010 ), то может сами разберетесь.
(миникор автоматически формирует файл листинга lst - можно в нем посмотреть, что происходит).
 
  • Лойс +1
Реакции: Boroda22

bort707

★★★★★★✩
21 Сен 2020
3,075
915
. В файле boards.txt найти описание этой платы и внести соответствующие изменения для работы с внутренним ТГ.
Все верно, кроме того, что редактировать надо секцию для атмега8. Это совсем другой камень и он несовместим с атмегой88.
Как я уже писал, атмега88 - это тоже самое как атмега328, но с меньшей памятью. Поэтому ищите в файле секцию, относящуюся к обычной Уно или Нано, копируете ее под новым именем и меняете параметры - ядро, частота, размер памяти и флеша, фьюзы.
Это наиболее правильный и безопасный метод. Правда обновлять ИДЕ потом нельзя, иначе потеряете все изменения