как освоит программирование ардуино

Yer
Offline
Зарегистрирован: 12.02.2016

Здравствуйте всем,вот уже вожусь с ардуино с простыми готовыми примерами в интернете все получается но когда нужно сделать другие более сложные не получается.Так как не могу понять как происходит цикл программы.Язык с++ очень похож на ST(программирование контроллеров сименс,овен) 

Dimanoss
Offline
Зарегистрирован: 29.05.2016

есть такое определение: "семейство С-языков" (иногда говорят "семейство Паскаль"), т.е куча современных программерских языков - родственные.  И, соответственно, наСИльник минимум на 75-80 процентов понимает код Явы или РНР, это как русскоязычному слушать украинский или, например, чешский.  Более того, и внутри самого языка есть свои диалекты - есть масса диалектов у Си, Бейсика, Паскаля, Явы... На ардуине тоже реализован один из диалектов С.  Поэтому проще всего брать классический учебник С или С++ (а в ардуине есть ООП?) и ардуиновское описание.  В описании, к сожалению, есть только описание, а вот в учебнике можно почерпнуть ПОЧЕМУ надо делать так или иначе, примеры посмотреть, трюки кое-какие.   К сожалению, ардуиновский диалект очень слабенький, не всё получится из классического С реализовать, но, если программирование будет удовольствие доставлять, вполне можно будет идти дальше, например - в сторону разработки эппов (диалект явы) для того же андроида и связки его с ардуиной.

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

Dimanoss пишет:
наСИльник

Я бы сказал "СИонист"
 
Dimanoss пишет:
а в ардуине есть ООП?
Навалом
 
Dimanoss пишет:
К сожалению, ардуиновский диалект очень слабенький, не всё получится из классического С реализовать

Ошибаетесь!

В ардуиновском IDE используется абсолютно полный - безо всяких ограничений С и С++ (и то и другое доступно) в gnu'сном варианте. Никаких ограничений - всё работает, а gnu'сный компилятор, как известно один из лучших. Единственная беда - это вмешательство IDE в структуру файла .ino - он конвертрует его в С++, но предварительно обрабатывает своим препроцессором. Но это не накладывает ограничений. Если не нравится, то это легко обойти. Достаточно в проект добавить файлы .С или .С++, а .ino только вызов оставить.

 

 

Yer
Offline
Зарегистрирован: 12.02.2016

Спасибо за отзывы все что перечилсенного понял нужно изучит с++ и тогда легче будет писать скетчи на арудино 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Yer пишет:

Спасибо за отзывы все что перечилсенного понял нужно изучит с++ и тогда легче будет писать скетчи на арудино 

С помощью Ардуино, как раз очень легко изучать С/С++. Есть обратная связь.

vitez
Offline
Зарегистрирован: 04.11.2015

Yer пишет:

Здравствуйте всем,вот уже вожусь с ардуино с простыми готовыми примерами в интернете все получается но когда нужно сделать другие более сложные не получается.Так как не могу понять как происходит цикл программы.Язык с++ очень похож на ST(программирование контроллеров сименс,овен) 

Если вам знакомо программирование промышленных контроллеров, обратите внимание на проект http://flprog.ru/

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

vitez пишет:

Если вам знакомо программирование промышленных контроллеров, обратите внимание на проект http://flprog.ru/

Совет звучит более, чем странно.

Dimanoss
Offline
Зарегистрирован: 29.05.2016

насколько мне известно, крутые перцы контроллеры исключительно на ассемблере программируют?  :-)

 

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

Так то ж (на то они и ...) крутые перцы!

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Dimanoss пишет:

насколько мне известно, крутые перцы контроллеры исключительно на ассемблере программируют?  :-)

 

Насколько мне известно - на честном Си.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Я пришёл к тому, что оптимально часть кода писать на СИ, часть на ASM ;) Один из первых моих гибридов -чтение сигнатуры и фузов атмеги:

// скетч для чтения сигнатуры меги 48/88/168/328
void setup(){
Serial.begin(9600);
String signstr,fusestr;
signstr= String("Reading the Signature Row: "+String(asm_func(0x21, 0),HEX)+ " " 
+String(asm_func(0x21,2),HEX) + " " +String(asm_func(0x21,4),HEX));                
fusestr= String("Reading the Fuse and Lock Bits(Low,Hi,Ext,Lock): ") 
+String (asm_func(0x9,0x0000),HEX)+ " " +String(asm_func(0x9,0x0003),HEX) + " "
+String((asm_func(0x9,0x0002))&7,HEX)+ " "  +String((asm_func(0x9,0x0001))&63,HEX);

Serial.println (signstr);
Serial.println(fusestr);
}
void loop() {}


uint8_t asm_func(uint8_t setbit , uint16_t adr){
asm volatile (         
"cli"                    "\n\t"
"movw r30,%0"            "\n\t" //положить в Z нужный адрес
"sts 0x57,%1"           "\n\t" //установить биты в регистре SPMCSR
"lpm"                    "\n\t" // прочитать память в Z
"mov r24, __tmp_reg__"  "\n\t" //скопировать результат в регистр вывода r24
"sei"                    "\n\t"
:: "r" (adr),"r" (setbit): ); }

 

Logik
Offline
Зарегистрирован: 05.08.2014

dimax пишет:

Я пришёл к тому, что оптимально часть кода писать на СИ, часть на ASM ;) 

Оно конечно так, жаль но после Вашего примера мы новичка больше не увидим )))

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

Да, ладно, мужики, выбор языка (когда есть из чего) дело настолько тонкое. Не всегда отдаёшь себе отчёт почему выбрал. Вот комфортно мне здесь с ним - и пишу на нём. Вопрос-то на самом деле вечный.

Что-то, везёт мне сегодня на вечные вопросы. В суде (я экспертизу кода для суда делал) судья спрашивает "что важнее в программе данные или алгоритмы?". Вот же ж блин, эти судьи как спросят чего!

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

ЕвгенийП пишет:

Да, ладно, мужики, выбор языка (когда есть из чего) дело настолько тонкое. Не всегда отдаёшь себе отчёт почему выбрал. Вот комфортно мне здесь с ним - и пишу на нём. Вопрос-то на самом деле вечный.

Что-то, везёт мне сегодня на вечные вопросы. В суде (я экспертизу кода для суда делал) судья спрашивает "что важнее в программе данные или алгоритмы?". Вот же ж блин, эти судьи как спросят чего!

три вопроса:

1. на предмет чего экспертиза? (кража кода?)

2. что ответили судье?

3. судья удовлетворился?

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

Да, экспертиза по краже. На самом деле разработчик толканул двум фирмам одну и туже программу слегка подшаманив для приличия. Вот фирмы и судятся. Иск охренительный - 250 лямов.

Судье ответил, что это философский вопрос о котором специалисты холиварят десятилетиями, но в данном классе программ (финансовый анализ) считаю, что структуры данных определют алгоритмы и мозгов в них больше. И, кстати, в подтверждение моих слов о постоянных холиварах, присутствоваший на суде разработчик (он там присутствовал как т.н. "третье лицо") попытался со мной холиварить начать и доказывать. что алгоритмы важнее. Но я его понимаю, код-то он подшаманил. а структура БД (1700+ таблиц) осталась практически идентичной. Вот теперь и доказывает. что она не важна.

Судья воспринял молча. А холивар пресек на корню. Сказал, что его интересует мнение эксперта, а не "третьего лица в процессе" и дискуссия неуместна.

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

ЕвгенийП пишет:

Да, экспертиза по краже. На самом деле разработчик толканул двум фирмам одну и туже программу слегка подшаманив для приличия. Вот фирмы и судятся. Иск охренительный - 250 лямов.

не тем бизнесом я занимаюсь...

Цитата:

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

Ну вы-же понимаете, что с колокольни интернет-эксперта, не знающего сути (и вообще... :) ) - такое утверждение очень спорное?

Цитата:

Судья воспринял молча. А холивар пресек на корню. Сказал, что его интересует мнение эксперта, а не "третьего лица в процессе" и дискуссия неуместна.

да, тяжело в нашей стране быть третьим лицом...

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

Gippopotam пишет:
Ну вы-же понимаете, что с колокольни интернет-эксперта, не знающего сути (и вообще... :) ) - такое утверждение очень спорное?

Не только "интернет-эксперта, не знающего сути" - это просто по жизни спорно-холиварное утверждение. Я ж об этом и судье сказал.

ssss
Offline
Зарегистрирован: 01.07.2016

ЕвгенийП пишет:

в подтверждение моих слов о постоянных холиварах, присутствоваший на суде разработчик (он там присутствовал как т.н. "третье лицо") попытался со мной холиварить начать и доказывать. что алгоритмы важнее. Но я его понимаю, код-то он подшаманил. а структура БД (1700+ таблиц) осталась практически идентичной. Вот теперь и доказывает. что она не важна.

И он прав! Голая структура, таблицы и данные и нах никому не нужны, это просто набор цифр! Только алгоритм определяет всю сущность, только он определяет взаимодействие всего этого бардака.

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

ssss, да, он прав. И я прав. И Вы правы. И судья прав. Тем более, без понимания задачи, это вообще не имеет смысла. Расслабьтесь, холивара не будет. Я на такие темы не спорю. 

Gippopotam
Gippopotam аватар
Offline
Зарегистрирован: 12.09.2014

Ну да, что человеку важнее левая рука или правое ухо?

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

Gippopotam пишет:

Ну да, что человеку важнее левая рука или правое ухо?

Вот это правильная постановка вопроса!

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Ну из левой руки и правого уха не так уж трудно выбрать.

А у меня первая ассоциация - что нужнее: легкие или печень.

Хотя, если более строго подходить к аналогии, то, пожалуй, - что важнее: пища или пищеварительный тракт.

tomato
Offline
Зарегистрирован: 21.07.2016

тоже новичок, но потребности скромные, автополив и что то простое для дома. 

Смотрю этот справочник:

http://arduino.ru/Reference

Он конечно помогает, но не все понятно. Читать большую толстую книгу по Си для того, чтоб написать что то простое, как то не совсем оправдано. 

 

Вот в частности кусок кода:

if (Poliv1 == 0 && Poliv2 == 0 && Poliv3 == 0) {Poliv1 = 1; TempVar = 0;}

Не могу найти инфу про  &amp

Что это такое? Где про него почитать? & это битовый оператор “И”, а что такое amp ?

 
Клапауций 232
Offline
Зарегистрирован: 05.04.2016

tomato пишет:

Вот в частности кусок кода:

...

Что это такое?

а где ты украл этот код?

tomato
Offline
Зарегистрирован: 21.07.2016

Почему украл? Или это шутка такая?

Вот здесь:

http://dom-313.ru/home-automatics/arduino-microcontrollers/54-arduino-wa...

Мне этот код не нужен, просто пытаюсь его понять для образования.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

tomato пишет:

Вот в частности кусок кода:

if (Poliv1 == 0 && Poliv2 == 0 && Poliv3 == 0) {Poliv1 = 1; TempVar = 0;}

Не могу найти инфу про  &amp

Что это такое? Где про него почитать? & это битовый оператор “И”, а что такое amp ?

 
Гы-гы 8-))) Это служебный HTML-символ, означает что нужно вывести амперсенд как знак. Короче тот код, что вы "украли" вставлен в страницу некорректно.
nevkon
Offline
Зарегистрирован: 20.01.2015
tomato
Offline
Зарегистрирован: 21.07.2016

Спасибо за ответ, но ничего не понял :)

Можно вас попросить словами написать логику процесса в той строке?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

tomato пишет:

Почему украл? Или это шутка такая?

Вот здесь:

http://dom-313.ru/home-automatics/arduino-microcontrollers/54-arduino-wa...

Мне этот код не нужен, просто пытаюсь его понять для образования.

это не шутка, а факт - только код украл не ты а владелец сайта, умудрившись сломать его при копипасте на свой ресурс.

итак: не "&&", а "&&". последняя "}" лишняя.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

tomato,  &&  подразумевалось это   &&

tomato
Offline
Зарегистрирован: 21.07.2016

Спасибо!

Вот так часто у новичков, пытаемся понять чужой код, а он оказывается не правильно украден :)

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

tomato пишет:

Спасибо!

Вот так часто у новичков, пытаемся понять чужой код, а он оказывается не правильно украден :)

ну, ты что? - не видел в какую помойку влез?.. достаточно было почитать восхищённые каменты.