Ардуино может быть на чём хош. На AVR, PIC, STM, x86 даже, ага?
Это точно также касается и одного пина, и чего угодно. Один фиг необходима прослойка для привязки общего к частному. Поэтому и удивлен, что для одного пина есть, всего порта - нет.
Конечно, можно работать напрямую без прослойки, что многие и делают. Только по красивому, в скетче нужно указывать с чем должно работать и стопориться через #error если это не так.
Понятно, что скетч - это набросок. Поэтому можно писать как непопадя. И J для переменной можно с заглавной, и пины можно непосредственно в самом скетче указывать.) И так сойдёт. Вот только как с малого привыкнешь, так и дальше будешь писать.
Всем спасибо. Действительно, оптимальная реализация получилась путем: назначения переменной = считывание состояния каждого пина + склеивание результатов побитно.
AVS95, не заблуждайтесь: способ не быстрее по скорости, не занимает меньше используемой памяти и не "параллелен" (все выходные данные не читаются вместе). Наверное второй способ только более понятен как действие для исполнение. Пишу это из-за того, что писали зачерненным шрифтом - в этом нет необходимости. Вероятно через какое-то время при писании кодов будете писать по первому варианту .
Здравствуйте. Есть необходимость выставить предделитель входа захвата в таймере для bluepill, но в штатном пакете такой оказался не предусмотрен. Судя по инету существует возможность портирования с CubeMX настроечных строк в arduino IDE, но как конкретно это можно сделать мне найти не удалось. Не, я понимаю, что в таких случаях надо отказываться от ардуино, но в данном случае мне может оказаться проще поставить предделитель в отдельном корпусе. По идее должна существовать возможность прямого управления регистрами, но из этой затеи у меня тоже ничего не вышло. Есть у кого-нибудь опыт решения проблемы?
Прямой доступ к регистрам вполне возможен и выполним (по крайней мере в отношении АВРок я им при необходимости пользуюсь). Однако там надо учитывать и уже заложенное "ядро программы", чтобы не навредить..... Т.е. использовать только не задействованные в ядре и применяемых функциях регистры. Доступ как и в обычном Си через соответствующие заголовочники/ файлы описаний. У портабле версии IDE их проще отыскать. Вероятно таковые есть и для STM платформ...
Ну так вот на основе опыта общения с avr я и пытаюсь это сделать! Напрашивается подключение библиотеки. Но какой? К примеру, цитата из: https://github.com/stm32duino/Arduino_Core_STM32 STM32Cube MCU Packages including: The HAL hardware abstraction layer, enabling portability between different STM32 devices via standardized API calls Гугль-перевод: Пакеты MCU STM32Cube, включая: Уровень аппаратной абстракции HAL, обеспечивающий переносимость между различными устройствами STM32 с помощью стандартизированных вызовов API. Что надо сделать, чтобы это работало?
Где-то в файлах компилятора есть файлы описания "io" и регистров. Для АВРок в портале варианте я их могу указать, а вот для STM...там надо того, кто компиляторы STMок знает к поиску подключить...
Не подключены соответствующие файлы описания в файле *.ino текущего проекта. А где их искать и как подключать - то надо знать компилятор, применяемый для данной платформы. Теоретически где искать я могу копнуть(для портале на ПК с ХР х32) по аналогии с АВРками.. Но у STM там дела чуток понавороченнее могут быть...
Еще не знаю работает оно или нет, но ошибок при компиляции не дает.
Добавлено after 1 hour 3 minutes 39 seconds: Не работает. Т.е. не делит. Даю на вход 1000 Гц, но при любых значениях делителя измерение показывает всё те же 1000 Гц.
Задал этот вопрос буржуинам, а пока поставлю триггер. В принципе есть и компромиссный вариант: каскадное включение таймеров, т.е. когда входной сигнал делится одним таймером, выход которого подается на второй, который и подсчитывает период.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения