Ищу pins_arduino.h для портов кварца XTALL

74LS00
Offline
Зарегистрирован: 11.04.2016

Нигде не могу найти этот файл чтоб подключится к выводам кварца. Редактировать тоже нереально, там какойто путаный код на регексах.

Может кто нибудь напишет или даст готовый, или всётаки на практике использовать вывода кварца нельзя?

74LS00
Offline
Зарегистрирован: 11.04.2016

Нашлась одна статья которая не работает https://forum.arduino.cc/index.php?topic=411872.0

Пишу обычный blink выдаёт ошибку при сборке. Оказалось вместо запятой стоит точка с запятой, автор видимо после много наисправлял и код испортил.

В общем теперь код собирается, но если указать нужные порты кварца, то ноги не видит.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Т.е. Вы запускаете контроллер без кварца (на внутреннем осцилляторе) , а ноги хотите использовать как GPIO? Или Вы хотите их использовать вместе с кварцем?

74LS00
Offline
Зарегистрирован: 11.04.2016

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

Ноги кварца пойду на светодиодный индикатор как выходы, ну может и опрос клавиатуры. Надо переделать сишный проект по оригинальной схеме, там и вовсе на 4мгц встроенном работает

atmega168bb.name=ATmega168 on a breadboard (8 MHz internal clock)

atmega168bb.upload.protocol=stk500
atmega168bb.upload.maximum_size=30720
atmega168bb.upload.speed=57600

atmega168bb.bootloader.low_fuses=0xE2
atmega168bb.bootloader.high_fuses=0xDA
atmega168bb.bootloader.extended_fuses=0x05
atmega168bb.bootloader.path=arduino:atmega
atmega168bb.bootloader.file=atmega/ATmegaBOOT_168_pro_8MHz.hex
atmega168bb.bootloader.unlock_bits=0x3F
atmega168bb.bootloader.lock_bits=0x0F

atmega168bb.build.mcu=atmega168p
atmega168bb.build.f_cpu=8000000L
#atmega168bb.build.core=arduino:arduino
#atmega168bb.build.variant=arduino:standard
atmega168bb.build.core=arduino
atmega168bb.build.variant=mega168

##############################################################

Основное отличие файлов похоже в одной строке.

В оригинале было так

#define analogInputToDigitalPin(p)  ((p < 6) ? (p) + 14 : -1)

Автор сделал так

#define analogInputToDigitalPin(p)  ((p < 5) ? (p) + 14 : ((p < 8) ? (p) + 17) : -1)

В остальном только дописал эти 3 порта.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вот, знаете. честно, я бы не парился. Работал бы с этими ногами через порт и всего делов. Проще некуда. Вы уверены, что оно Вам надо? Тем более непонятно зачем Вы при этом перестраиваете аналоговые пины, причём так странно.

74LS00
Offline
Зарегистрирован: 11.04.2016

Не силён я в сишном коде, а то бы  и писал на нём. Под индикацию готовая библиотека, я не знаю как эти порты к ним прикрутить.

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

---

Вроде как разобрался.

Идём на гит автора https://github.com/MCUdude/MiniCore

Заменяем стандартный файл pins_arduino.h этим https://github.com/MCUdude/MiniCore/tree/master/avr/variants/standard

Потом дописываем в свой boards.txt из этого https://github.com/MCUdude/MiniCore/blob/master/avr/boards.txt

В списке плат ардуины появится 5 контролеров у которых будет куча настроек.

В программе будут доступны порты 20,21 и 22, соответсвенно pb7 x1, pb7 x2 и pc6 reset

 

Чтоб заработала демка пришлось поковырять эти самые настройки. Не понятно как они работают, но без bod включилась с мусором на инверсных экранах, хотя они должны быть пустыми