Ардуино что это

Обсуждаем контроллеры компании Atmel.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Ардуино что это

Сообщение a5021 »

С чего ему разбухать, если под ардуиновской средой лежит GCC -- один из лучших оптимизирующих компиляторов для языка С/С++ и самый лучший среди бесплатных. То, что библиотеки порой тяжеловаты, так и функционал, извините, не моргание светодиодом. Не нравятся библиотеки, пишите свои. Ардуина тут никак и никого ограничить не в состоянии. Особо беспокоящимся "развитием", могу предложить сразу начать со стека протоколов TCP/IP. Развиваться без остановки придется до самого смертного одра, независимо от возраста на сегодняшний день.
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: Ардуино что это

Сообщение Андрей СШ »

Я один раз написал под ардуину код

Код: Выделить всё

case(...)
оператор;
{
...
}

После этого часа три выяснял почему оператор не выполняется.

Компилятор, пропускающий такие очевидные ошибки разработку как то не ускоряет.
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

Андрей СШ писал(а):пропускающий такие очевидные ошибки разработку как то не ускоряет.

Компилятор тут не причем. на си можно написать одно и тоже разными способами.

B@R5uk писал(а):то надо хорошо разбираться в вопросе


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

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Morroc
Друг Кота
Сообщения: 19494
Зарегистрирован: Чт фев 20, 2014 18:57:55

Re: Ардуино что это

Сообщение Morroc »

Я без кварца запускаю поделия, только частоту ставлю 8 обычно фьюзами. Даже в готовых конфигах есть такие варианты плат или можно свой создать на нужную частоту. Собственно и ардуиной то готовой пользуюсь нечасто, чаще девайс на макетке с подключенным USBAsp и лью без загрузчика... вот как то так привык к ардуине.
"Вся военная пропаганда, все крики, ложь и ненависть исходят от людей, которые на эту войну не пойдут !" / Джордж Оруэлл /
"Война - это,когда за интересы других,гибнут совершенно безвинные люди." / Уинстон Черчилль /
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

Компилятор таки смущается :)

Код: Выделить всё

int maint(void)
{
   int a = 0;
   switch (a) {
      case 0
      asm volatile("nop");
      {
         asm volatile("nop");
      }
      break;
   }
   
   return 0;
}


Изображение
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

:))) он тебе говорит что после кейса должно идти двоеточие.

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

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: Ардуино что это

Сообщение Андрей СШ »

Извиняюсь перепутал ключевые слова. Код был приблизительно такой

Код: Выделить всё

 switch(a)
  digitalWrite(led, LOW);
  {
    case 0: digitalWrite(led, HIGH);
  }


И компилировался молча. Сейчас баг уже устранили.
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

Не вижу здесь ошибки (в смысле которую должен увидеть компилятор).
Это уже логическая ошибка человека а не компилятора. Может вам нравится когда компилятор загоняет в жесткие рамки, а мне нет.
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

DronVolk писал(а)::))) он тебе говорит что после кейса должно идти двоеточие.
Ну речь и шла об "очевидных ошибках" :))) Я лишь попытался скомпилировать написанное :)))

Новая версия кода никак не могла молча компилироваться. Она опять синтаксически неверна, согласно стандартам Си.

Код: Выделить всё

void nop(void)
{
   asm volatile("nop");
}

int maint(void)
{
   int a = 0;

   switch (a)
   nop();
   {
      case 0: nop();
   }
   
   return 0;
}

Изображение

Конечно же проще всего сказать "пофиксили". Будем проверять в той версии, в которой якобы молча компилировалось? Или слив засчитан?

UPD: Блять, как это я набрал функцию maint :)))
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

это скорее зависит не от версии, а от флагов строгости. (команда --help)

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

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

Внимательно прочитай вывод компилятора. Вообще не тот случай.
Есть кейс без свитча, это нарушает любой стандарт си.

В дополнение к твоему, в мейкфайле ардуины никаких стриктов не используется. Вот какой-то ардуиновский мейкфайл: http://shallowsky.com/software/arduino/ ... rduino-0.8
Кстати, --help -v, если уж на то пошло :)
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: Ардуино что это

Сообщение Андрей СШ »

hybroid, ну прокололись вы один раз на моей схеме, с кем не бывает. Теперь будете до скончания интернета ходить за мной по форуму и обижаться?


Я всё таки совсем не дружу с Си - второй раз тоже код с ошибкой запостил.

Проблема выглядела так:

Код: Выделить всё

switch(a)  
  {
    digitalWrite(led, LOW);
    case 0: digitalWrite(led, HIGH);
  }


Вот эта фигня молча компилируется в Arduino 1.0.1, хотя должно быть предупреждение "недостижимый код".
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

Я когда учился программировать и не такие конструкции скармливал компилятору и он это собирал. Вопрос лишь в том как это будет исполнено))) здесь четко прослеживается логическая ошибка и компилятор тут ни причем потому что ему и не такие костыли скармливают а он обязан это собрать.
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: Ардуино что это

Сообщение Андрей СШ »

Ну вот я перешёл с Arduino на компилятор, который такую конструкцию принципиально не компилирует, и освоение MK пошло значительно быстрее.

Причём слово "принципиально" тут не для связки предложения. Это именно ключевой принцип: никогда не компилировать, то что не выражено однозначно и отчётливо.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

У тебя мания приследования :)
А мсье знает, что в ардуино используется gcc? Перешёл с gcc на gcc и всё поменялось? :shock: Или, что ещё хуже, не на gcc :))) Весь мир пользуется им не в одной сфере деятельности далеко не первый год, а он, оказывается, не годный..
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Ардуино что это

Сообщение DronVolk »

hybroid писал(а):А мсье знает, что в ардуино используется gcc? Перешёл с gcc на gcc и всё поменялось?


Мусье а вы не в курсе что в Ardunio C++ используется, а он говорит про Cи это огромная разница.
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

В чём? Вообще никакой разницы в данном случае.

А конструкция выше не запрещена ISO9899. Даже круче, там вот такой пример фигурирует:

Код: Выделить всё

switch (expr)
{
        int i = 4;
        f(i);
case 0:
        i=17; /* falls through into default code */
default:
        printf("%d\n", i);
}


UPD: у нас же всегда так.. Стандарты мы не читаем, справку к компилятору обычно тоже не читаем, пишем с учётом того, что компилятор за нас проверит :))) А не получилось - значит компилятор говно. А gcc, между тем, хоть каким-то стандартам соответствует. А в чём не соответствует - оговорено, но это тоже никто не читает.
Как много людей, интересно, запустив Arduino IDE, читали вообще про компилятор..
Кстати, вот это - одна из причин торможения развития при использовании Arduino. Но виновата не плата. Плата ничо такая, но была нацелена в первую очередь на аудиторию "домохозяек". Результат - виден везде, даже на этом форуме. :)))
Андрей СШ
Опытный кот
Сообщения: 806
Зарегистрирован: Ср май 06, 2015 06:41:27
Откуда: Благовещенск

Re: Ардуино что это

Сообщение Андрей СШ »

Ну соответствует стандарту, а дырка всё равно есть.

Из этого следует только то, что дырка в стандарте.

Я конечно понимаю, что стандарт там писали боги программирования и они никогда не допускают таких глупых ошибок, но Arduino платформа не для них.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Re: Ардуино что это

Сообщение a5021 »

Для доказательства, что ардуино -- дерьмо, пришлось дерьмом измазать один из лучших компиляторов, стандарт языка Си и "богов программирования". Даже интересно, до чего еще могут дотянутся руки в фекалиях ради доказательства недоказуемого.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Ардуино что это

Сообщение hybroid »

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

Вернуться в «AVR»