Всё должно быть гармонично.) Для себя ты можешь делать как угодно, а вот показывать людям... Засмеют.) Особенно, если попытаешься куда то тулить в серию.)Mildi wrote: Не понимаю я радикалов с их вот такими бросаниями в крайности....
Революция по имени Arduino
Moderator: Shaos
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
-
- Fanat
- Posts: 57
- Joined: 24 Aug 2022 23:08
Re: Революция по имени Arduino
C МК на голой логике далеко не уедешь. Физику надо учитывать даже в этом случае. Например отличие прерывания PCINT N от INT N.Mondx wrote: Как раз таки это и есть дурной тон. На то он и высокоуровневый язык, что бы видеть логику и не видеть физику.
Ввод-вывод выносится в хедеры в виде макро или инлайн функции. Либо используются функции Ардуино. В самом теле программы его быть не должно.
А тогда, при переносе на другой МК, правится только ввод вывод в хедере. Всё это в одном месте.
Смысл в количестве стороннего ПО - библиотек, примеров, проектов. Ты быстро макетируешь устройство и проверяешь функционирование. А дальше уже можешь вылизывать под себя. Плюс комьюнити, а это важно. И не только для начинающих.
Количество ПО увы не означает качество, да и не все что есть на С например перенесено в Ардуино, так и не все что есть в Ардуино реализовано на С. С остальным согласен, но комьюнити пишущих на С не меньше чем пишущих на Ардуино. Так что опять же никакого ощутимого профита в смене одного комьюнити на другое нет.
А вот для начинающих как раз да Ардуино очень удобно в связке (IDE + Язык + Урезанная под одни стандарты платформа + готовая переферия + комьюнити которое обсасывает эту связку со всех сторон)
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
Естественно. Я же не говорю что не нужно учитывать физику. Я говорю что бы она была оформлена. А это не только наглядность при чтении, но и удобство при переносимости. Как раз Ардуино для этого. Другое дело что многие пишут для него как не попадя, но это культура(.Mildi wrote: C МК на голой логике далеко не уедешь. Физику надо учитывать даже в этом случае. Например отличие прерывания PCINT N от INT N.
Да ладно! А вы сравните активность на русскоязычных форумах по Си и Ардуино.Mildi wrote:Количество ПО увы не означает качество, да и не все что есть на С например перенесено в Ардуино, так и не все что есть в Ардуино реализовано на С. С остальным согласен, но комьюнити пишущих на С не меньше чем пишущих на Ардуино. Так что опять же никакого ощутимого профита в смене одного комьюнити на другое нет.
Ну а качество вы уже сами для себя будете выбирать и делать. Главное, что бы было из чего выбирать.
-
- Fanat
- Posts: 97
- Joined: 23 Feb 2018 22:20
Re: Революция по имени Arduino
Я ардуину использовал оочень недолго, а потом продал знакомому. Там был какой-то глюк компилятора, и если менять местами две строчки с независимыми операциями типа а+б и в+г то поведение мк менялось. Сын знакомого потом с этой ардуиной потом диплом в своём технаре защитил, один из всей группы притащил работающую вещь и продемонстрировал работу своего макета. Паял ему батя, а сам парнишка только программу писал )
Готовые платки есть с мк синие таблетки с STM32/1986ВЕ92, если неохота разводить и/или беспаечно макетировать надо. Я во второй итерации своего недоПЛК поставил STM и написал на С свою портируемую библиотеку функций. Можно эту библиотеку при надобности переписать под другой МК, хоть авр, хоть микроновский амур, хоть тот же миландрокортекс, и программа пользователя на макросах будет также работать. Так пять гидропрессов на местном заводе переоборудовано с релейной схемы на мой контроллер. Входы-выходы с помехоустойчивостью, подавление дребезга программное. Опторазвязку, пришлось ставить российскую, не всё можно достать контрабандным параллельным импортом и русские оптроны на удивление работают даже лучше.
Готовые платки есть с мк синие таблетки с STM32/1986ВЕ92, если неохота разводить и/или беспаечно макетировать надо. Я во второй итерации своего недоПЛК поставил STM и написал на С свою портируемую библиотеку функций. Можно эту библиотеку при надобности переписать под другой МК, хоть авр, хоть микроновский амур, хоть тот же миландрокортекс, и программа пользователя на макросах будет также работать. Так пять гидропрессов на местном заводе переоборудовано с релейной схемы на мой контроллер. Входы-выходы с помехоустойчивостью, подавление дребезга программное. Опторазвязку, пришлось ставить российскую, не всё можно достать контрабандным параллельным импортом и русские оптроны на удивление работают даже лучше.
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
Ну да, конечно! Там ТАКОЙ глючный компилятор, глюк на глюке, прям, ужос. Особенно поначалу. А пример не дашь? Что б самому не наступить. Заодно и проверим.Электромонтёр wrote: 03 Jan 2025 01:38 Я ардуину использовал оочень недолго, а потом продал знакомому. Там был какой-то глюк компилятора, и если менять местами две строчки с независимыми операциями типа а+б и в+г то поведение мк менялось.
Всегда!
-
- Maniac
- Posts: 264
- Joined: 11 Oct 2018 00:52
- Location: г. Клинцы, Брянская обл.
Re: Революция по имени Arduino
Я пробовал программировать Arduino на Flowcode v10 (бесплатная версия для некоммерческого использования после регистрации). Код получается более компактный и быстрый по сравнению с родным ардуиновским компилятором. Плюсом имеем множество встроенных библиотек для подключения различной периферии и возможность симуляции схем с наблюдением результатов (но не для всех схем). Программирование происходит в виде блок схем (визуальное программирование). Отторжения не возникает. Единственный недостаток - громоздкие схемы алгоритмов.
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Революция по имени Arduino
Вот это и называется:"Благими намерениями выстлана дорога в Адъ!"Mondx wrote: 31 Dec 2024 02:46А тогда, при переносе на другой МК, правится только ввод вывод в хедере. Всё это в одном месте.

Нифига код так просто не переносится даже между близкими МК.
Вот живой пример: после НГ решил я перенести вот этот довольно простой проект:
viewtopic.php?t=9459&start=30
на простую ATMega8 в DIP корпусе, благо их есть у меня...
Сутки вчера башку ломал, переписывая работу ТС2 в режиме СТС.

А по началу тоже думал, вон автор проекта поменял хедеры, и - ура!

Code: Select all
;.include "m328pdef.inc"
.include "m168def.inc"
точно работает, если вникать в детали.

iLavr
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
Это ассемблер. Заголовочные файлы m8def.inc, m168def.inc описывают регистры и биты соответствующих МК. Но мега8, мега16... - это старое семейство AVR. У нового мега88/168/328 значительные отличия от старого как в наименованиях регистров/бит, так и некоторые отличия в функционировании/инициализации.
См. хотя бы https://ww1.microchip.com/downloads/en/ ... oc2553.pdf.
В Ардуино же это может выглядеть так:
В этом случае, при переходе с мега8 на 168, можно ручками подправить хедер, а можно включить директивы условной трансляции, типа, #ifdef __AVR_ATmega8__ ... #elif defined __AVR_ATmega168__ ... #endif
См. хотя бы https://ww1.microchip.com/downloads/en/ ... oc2553.pdf.
В Ардуино же это может выглядеть так:
Code: Select all
#include "timer2.h"
// в самом скетче будет одинаково для любого МК
void setup() {
timer2_init();
...
}
// в timer2.h будут отличия. Для мега168
inline void timer2_init() {
OCR2A = TIMER_VALUE;
TCCR2A = 1<<WGM21; TCCR2A = 0; //CTC mode
}
// для мега8
inline void timer2_init() {
OCR2 = TIMER_VALUE;
TCCR2 = 1<<WGM21 | 0<<WGM20; //CTC mode
}
-
- Supreme God
- Posts: 16680
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Революция по имени Arduino
Спасибо за лекцию, Капитан Очевидность...
Как говаривал один мой старый знакомый-телемастер:
"И мы знаем, как работает троллейбус,
вот только никак не поймём, как бензин
по проводам поступает..."
Я был далёк от мысли, что всё заработает при смене файла-хедера.
Но всё же надеялся, что хотя бы порты ВВ заработают, а уж таймер я сам подшаманю...
Но именно такими благими намерениями и выстлана дорога в Адъ!

Как говаривал один мой старый знакомый-телемастер:
"И мы знаем, как работает троллейбус,
вот только никак не поймём, как бензин
по проводам поступает..."
Я был далёк от мысли, что всё заработает при смене файла-хедера.
Но всё же надеялся, что хотя бы порты ВВ заработают, а уж таймер я сам подшаманю...

Но именно такими благими намерениями и выстлана дорога в Адъ!

iLavr
-
- Fanat
- Posts: 57
- Joined: 24 Aug 2022 23:08
Re: Революция по имени Arduino
Там родной компилятор GCC, размер кода и торможения от того что элементарная работа с портами идет через библиотеку с кучей проверок.FizikS wrote: 03 Jan 2025 02:30 Код получается более компактный и быстрый по сравнению с родным ардуиновским компилятором.
Если нужна скорость, то не используешь встроенные библиотеки Ардуино, а пишешь на чистом С/С++ в Ардуино ИДЕ и получаешь код почти без лишнего мусора по быстродействию на уровне других компиляторов С/С++.
-
- Fanat
- Posts: 57
- Joined: 24 Aug 2022 23:08
Re: Революция по имени Arduino
Оно так на любом С подобном языке выглядит.
В любом случае чтоб это дописать, надо сначала даташит почитать.
Но заниматься этим будут скорее те кто пишет код изначально под разные МК.
При адаптации кода с одного МК на другой обычно этим не занимаются, а сразу инициализацию таймера правят под новый МК
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
И не почти без, а вообще без.) И даже на ассемблере можно.Mildi wrote: 04 Jan 2025 09:41 Если нужна скорость, то не используешь встроенные библиотеки Ардуино, а пишешь на чистом С/С++ в Ардуино ИДЕ и получаешь код почти без лишнего мусора по быстродействию на уровне других компиляторов С/С++.
Естественно. Так речь то об Ардуино.)Оно так на любом С подобном языке выглядит.
-
- Doomed
- Posts: 505
- Joined: 10 Aug 2022 07:27
- Location: Crimea
Re: Революция по имени Arduino
Обычно тяп-ляп у многих.Mildi wrote: 04 Jan 2025 09:57...обычно этим не занимаются, а сразу инициализацию таймера правят под новый МК
Всегда!
-
- Fanat
- Posts: 57
- Joined: 24 Aug 2022 23:08
Re: Революция по имени Arduino
В большинстве случаев этого больше чем достаточно...
-Работает?
-Работает!
-Хай работает, оставляем.
Пару раз такой тяп ляп даже в серьезные проекты утек... Просто скопировали, даже не смотрели что к чему. Зато сразу видно у кого содрали

-
- Admin
- Posts: 24008
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Re: Революция по имени Arduino
тяп-ляп-работает-нетрож это девиз всех программистов всех времён во всех странах 

Я тут за главного - если что шлите мыло на me собака shaos точка net