Ардуинщики всех стран - объединяйтесь! В этом форуме, конечно.
Ответить

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 07:58:43

OKF писал(а):Ардуино может быть на чём хош. На AVR, PIC, STM, x86 даже, ага?
Это точно также касается и одного пина, и чего угодно. Один фиг необходима прослойка для привязки общего к частному. Поэтому и удивлен, что для одного пина есть, всего порта - нет.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 08:27:56

Поэтому и удивлен, что для одного пина есть, всего порта - нет.

Я как то интересовался этим вопросом, ответ такой, что это просто не нужно. И это касается не только ардуино, и не только AVR, а вообще всех МК.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 08:34:22

это кто-то дал очень глупый ответ.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 08:50:15

Конечно, можно работать напрямую без прослойки, что многие и делают. Только по красивому, в скетче нужно указывать с чем должно работать и стопориться через #error если это не так.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 09:26:51

это кто-то дал очень глупый ответ.
Точно! Эти же дураки зачем-то "порвали" порты на многих МК. :)))

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 10:24:45

Это не Ардуино.
...
uint8_t j = digitalRead(pin4)<<3 | digitalRead(pin3)<<2 | digitalRead(pin2)<<1 | digitalRead(pin1);
[/code]

Это тоже не Arduino :).
Код:
byte J = digitalRead(A4) << 3 | digitalRead(A3) << 2 | digitalRead(A2) << 1 | digitalRead(A1);

Шучу. Может по-разному, даже на asm.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 13:47:22

Понятно, что скетч - это набросок. Поэтому можно писать как непопадя. И J для переменной можно с заглавной, и пины можно непосредственно в самом скетче указывать.) И так сойдёт. Вот только как с малого привыкнешь, так и дальше будешь писать.

Re: Arduino IDE в вопросах и ответах

Пн апр 03, 2023 21:58:22

Всем спасибо. Действительно, оптимальная реализация получилась путем: назначения переменной = считывание состояния каждого пина + склеивание результатов побитно. :)

Re: Arduino IDE в вопросах и ответах

Вт апр 04, 2023 01:20:40

AVS95, не заблуждайтесь: способ не быстрее по скорости, не занимает меньше используемой памяти и не "параллелен" (все выходные данные не читаются вместе). Наверное второй способ только более понятен как действие для исполнение. Пишу это из-за того, что писали зачерненным шрифтом - в этом нет необходимости. Вероятно через какое-то время при писании кодов будете писать по первому варианту :).

Re: Arduino IDE в вопросах и ответах

Вт апр 04, 2023 11:57:00

А нужна ли скорость? А если нужна, то лучше оформить отдельно через макро или инлайн:
Код:
#define get_data() PINC>>1 & B00001111
// а тогда:
uint8_t j = get_data();

и в get_data() пиши что хош. Как тебе кажется быстреe.

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 06:14:10

Здравствуйте.
Есть необходимость выставить предделитель входа захвата в таймере для bluepill, но в штатном пакете такой оказался не предусмотрен.
Судя по инету существует возможность портирования с CubeMX настроечных строк в arduino IDE, но как конкретно это можно сделать мне найти не удалось.
Не, я понимаю, что в таких случаях надо отказываться от ардуино, но в данном случае мне может оказаться проще поставить предделитель в отдельном корпусе.
По идее должна существовать возможность прямого управления регистрами, но из этой затеи у меня тоже ничего не вышло. :(
Есть у кого-нибудь опыт решения проблемы?

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 09:45:26

Прямой доступ к регистрам вполне возможен и выполним (по крайней мере в отношении АВРок я им при необходимости пользуюсь).
Однако там надо учитывать и уже заложенное "ядро программы", чтобы не навредить.....
Т.е. использовать только не задействованные в ядре и применяемых функциях регистры.
Доступ как и в обычном Си через соответствующие заголовочники/ файлы описаний.
У портабле версии IDE их проще отыскать. Вероятно таковые есть и для STM платформ...
:roll:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 14:15:38

Вероятно таковые есть и для STM платформ...
:roll:

Ну так вот на основе опыта общения с avr я и пытаюсь это сделать!
Напрашивается подключение библиотеки. Но какой? :shock:
К примеру, цитата из: 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.

Что надо сделать, чтобы это работало? :shock:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 15:49:33

Где-то в файлах компилятора есть файлы описания "io" и регистров.
Для АВРок в портале варианте я их могу указать, а вот для STM...там надо того, кто компиляторы STMок знает к поиску подключить...
:dont_know:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 16:03:04

Пишем:
Код:
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;

Получаем:
'htim2' was not declared in this scope
----------
Пишем:
Код:
 timer_ic.TIM_ICPrescaler = TIM_ICPSC_DIV1;

Получаем:
'timer_ic' was not declared in this scope
----------
Пишем (от балды):
Код:
GPIOA->BSRR = 0x20;

Получаем:
'struct gpio_dev' has no member named 'BSRR'
----------
Пишем (от балды):
Код:
bool pin5 = !!(GPIOA->IDR & (1<<5));  // read pin via input data register.

Получаем(от балды):
'struct gpio_dev' has no member named 'IDR'

Что он просит? :shock:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 18:05:26

Не подключены соответствующие файлы описания в файле *.ino текущего проекта.
А где их искать и как подключать - то надо знать компилятор, применяемый для данной платформы.
Теоретически где искать я могу копнуть(для портале на ПК с ХР х32) по аналогии с АВРками..
Но у STM там дела чуток понавороченнее могут быть...
:dont_know:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 19:31:00

Нашел!!! :))
Запись должна быть вот такая:
Код:
TIMER2_BASE->CCMR1 |= (1<<2);

Еще не знаю работает оно или нет, но ошибок при компиляции не дает.
:roll:

Добавлено after 1 hour 3 minutes 39 seconds:
Не работает. Т.е. не делит.
Даю на вход 1000 Гц, но при любых значениях делителя измерение показывает всё те же 1000 Гц. :dont_know:

Re: Arduino IDE в вопросах и ответах

Вс май 21, 2023 20:38:35

Программно можно задавать все кроме того, что задается комплектом фуз (это относительно АВРок - как у STM не ведаю).
:dont_know:

Re: Arduino IDE в вопросах и ответах

Пн май 22, 2023 05:13:07

Попробовал вместо штатного:
Код:
Timer1.setPrescaleFactor(72);

применить:
Код:
TIMER1_BASE->PSC = 72;

Работает... :solder:

Re: Arduino IDE в вопросах и ответах

Ср май 24, 2023 04:54:08

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