Самодельная Унка

Тема в разделе "Посоветуйте детальки", создана пользователем Игорюшка Владимирович, 24 апр 2016.

  1. ANV

    ANV Гуру

    Возможно вам надо switch/case https://www.arduino.cc/en/Reference/SwitchCase

    Про goto можно набрать "почему goto плохо" и посветиться в причины крестового похода. Начать можно отсюда: https://habrahabr.ru/post/114211/
     
  2. ИгорьК

    ИгорьК Гуру

    Вот в этом топике товарищ удивительный вывод сделал.
     
  3. Да... интересато
    Занимаюсь ункОстроением от силы месяц, но статья познавательная - спасибо ! Я еще маленький для такого глубокого погружения - однако ....
    Железу одинаково приятно - что и кака считать (лишь бы не захлебнулось от объёма и прожевало обработку всех условий, не считая математики). Речь, возможно, о "стилистике" программирования (при условии, что всё это ... заработало :rolleyes:). И если человек успешно решает задачЮ применяя "не совсем нормативную лексику" - пусть будут так. Но если она не понятна другим, то ... ему сложно помочь.
    За всё время моего существования ни один иностранный язык так не смог мною овладеть :oops: , но не думаю, что общаясь тут на арабском или "пися" тРанс*лиТОм, я бы смог получить хоть какую-то помощь или совет.
    Важно, что бы программа вменяемо читалась, а ....
    Опыт, как и половое бессилие - приходит с годами. (И. Май-я. Из нерашифрованного 4-го тома):)
     
  4. ostrov

    ostrov Гуру

    Интересно, опыт и половое бессилие как то связаны между собой? Если да, то что причина. а что следствие? :rolleyes:
     
  5. (И. Май-я. Из нерашифрованного 4-го тома) может гугло-пере-вод-чик ? :)
    А первоисточник - некто Жванецкий М. (кажется).
     
  6. Пришли лысые Атмеги и никак не могу забутить Ат328 в дипе28 через прорамматор :oops: (а ведь Атмега 8 залилась и блинк завёлся !) - сегодня соберу шилд http://ru.aliexpress.com/item/AVR-I..._6&btsid=376dbc52-7eda-4ef1-92c1-b5630233252e
    и через Уну попробую ...

    Вот ещё понравилась фенька
    http://ru.aliexpress.com/item/ATmeg...363689.html?spm=2114.10010208.100010.7.vYGNrV
     
  7. Karabas

    Karabas Гик

    Прикольный шильд, сначала думал придумать что то подобное, но в итоге взял второй вариант с програматором на мега8.
    Одно плохо, там походу кварц впаянный, я на своем поставил панельку, чтоб менять кварцы.
     
  8. Я победил свой шилд (Мать... мать... - привычно откликнулось Эхо)
    Приехавшие из Москвы голыши залились.
    Но у меня тоже само-делка - я так толком в ней пока не разобрался - схемы нет, но "на про-Свет" и кнопка сброса подключена (но не к ноге ка-ца) и диоды с подтяжками. Думаю оставить её кака есть : работает на - не трогай на. Т.е. на данном этапе важно было поиметь само-унки для моделирования "готовых" скетчей-блоков.
    Image00001.jpg

    ...а вот с базара "последняя осталась" (типа дфицит :D ) ... не живёт:oops:

    Вот "подсобные материалы":
    http://bigbarrel.ru/arduino_bootloader/
    http://robocraft.ru/blog/3063.html
     
    Последнее редактирование: 14 май 2016
    Alex19 нравится это.
  9. Не знаю, где я накосоячил, но :
    все лысые забутлодерились через саму УНУ удачно (наверное).
    попытка записать в моей кровати через программатор скетч - ругается.
    если родныю уну в плате заменить на свежеоприходованную - видит как родную и блинк пишет и ... уже в моей кровати моргает.
    Надо ночь переждать....подумать проверить :confused:.
     
  10. joman

    joman Гик

    Если не вдоваться в подробности, то примерно так:
    Код (C++):
    ...
    if (условие1){
      Function1 (params);
    } else if (Условие2){
      Function2 (params);
    }
    ...
    Function1, Function2... описывают действия разных "блоков", если они нужны.
    Вместо этих функций можно непосредственно описать действия, которые необходимы.
     
  11. Ушёл в железки - корпуса для модели. Скоро опять в "программирование" окунусь ! :rolleyes:
    Т.е :
    Есть "некое ус-во", которое требует, например, калибровки - подстройки перед постоянной эксплуатацией в "основном" цикле. Вешаем на любой лого-пин перемычку (выключатель) и если требуется выставить параметр - Вкл. Выставляем - настраиваемся, а потом Выкл - и запускается работа в "штатном" режиме.
    Для такого варианта испоЛзования не слишком громоздкая (не читаемая) конструкция получится ? Или Function1 оформляется в виде отдельного программного блока, а это просто её имя ?
     
  12. joman

    joman Гик

    Я же написал, как Вам удобно.
    Можно объявить как функцию и описать ее отдельно, так и опиать конкретные шаги вместо функции.
    P.s. Инициализация обычно выводистя в сетап, а не делается в лупе. собственно для этого его и изобрели.
     
  13. В сетапе обычно объявляется все основные переменные, библиотеки и функции, которые потом используются в теле всех подпрограмм и блоков.
    Я пока примеры осваиваю, и только пытаюсь понять, как можно распределить "блоки" нескольких не связанных (или связанных) задач с помощью нескольких выключателей на вх ардушки.
     
  14. joman

    joman Гик

    Переменные объявляются там, где это нужно.
    Если это глобальные переменные, то они вообще вне функций объявляются. если локальные, то в теле функций.
    Код (C++):
    //Глобальная переменная, объявленная и сразу присвоенная
    bool param1 = 0;

    // Тут инициализация
    void setup() {
      pinMode(2, INPUT);
      // Тут могут быть еще действия инициализации,
      // на пример, ожидание ответа какого то датчика на 3 пине
      // чтобы понять что мы в определенном (нулевом) положении
      pinMode(3, INPUT);
      while(digitalRead(3)){
      }
      // Сюда мы не попадём до тех пор, пока на 3 пин не прилетит сигнал с датчика
    }

    // Тут исполняемый код, который будет всё время повторяться.
    void loop() {
      // локальная переменная
      bool param2 = digitalRead(2);
      if(param1 == param2){
        Process1(param1);
      } else {
        // тут какие то шаги, в случае, если param1 != param2
      }
    }

    void Process1(bool param){
      // Тут какие то шаги, возможно, использующие param. Если он не нужен, то переменная не нужна.
    }
     
     
  15. Спасибо !
    Вообще подобное "структурирование" тельца программы очень помогает новичку понять возможности программирования МК - не просто цикл Луп "от начала до конца и по-новой", а возможность пропускать или вновь обращаться к каким-то участкам программы, в зависимости от внешних условий (датчиков, вы- и переключателей).
    Либо пропускать ненужные в "настоящий момент" эксплуатации всего устройства в целом.
    Например, переключение самого ус-ва в несколько режимов : настройка, эксплуатация, подключение (вт.ч. и в "тело программы") дополнительных сервочек или датчиков и т.д., СНОВА подстройка.
    Т.е. не нужные В ДАННЫЙ МОМЕНТ функции самого устройства в целом,
    (или ... "сложносовместимые" с точки зрения быстродействия или просто программирования)
    фрагменты-функце-блоки кода,
    можно переключать "тумблерами" (внешними условиями).
    Очень интересно, спасибо! - значительно ... добавляет идей в пересчёте на один корпус !!
     
  16. Долго ли коротко (ли) приехали "восточные" АТмеги№8.
    При попытке обутлодерить их через IDE программатор (версии 1.6 ) на Уно - ругаются на память-фьюзы...
    Поэтому с разбегу не зада-лося.
    Тут же на форуме кто-то IDE1.0.5 удачно загрузил и, переустановив IDE получил загрузку таким способом и даже залил "контрольный блинк". Однако ... скорость моргания явно "не соответствует действительности", что наводит на мысль о неправильных настройках при загрузке бутлодера.
    Копнём глубже и подумаем :
    http://forum.amperka.ru/threads/Прошивка-МК-программой-из-arduino.8713/
    http://forum.amperka.ru/threads/перепрошивка-arduino-и-фьюзы.8631/#post-77657
     
    Последнее редактирование: 18 июн 2016
  17. AlexU

    AlexU Гуру

    Настройки загрузки бутдлоадера тут совсем не при чём. При компиляции исходников не правильно задана частота, на которой работает микроконтроллер -- за это отвечает макрос F_CPU.
     
  18. Вот как жить дальше ?! В плату Уно №3 была вставлена свежеотбученная АТмега №8. В настройках ИДЕ 1.6 указал платку как уну и камень как "старый" и в процессорах именно 8-ю. Программа согласилась (не ругалась - уже хорошо) :oops: Блинк влился, так же как на родную 328, ИДЕ сказала - мол вгрузинили...
    А ... дальше "знания закончились" - как в таких случаях (и в каких ?! - у меня на самоунке ква-рц 16 и на амперковской тоже...) этот макрос F_CPU искать ? :)
     
  19. Karabas

    Karabas Гик

    А для чего вы используете 8е, 328 стоят столько же, но памяти больше. Или есть какие то приемущества?
     
  20. Восточные братья по разуму прислали - причём заказывал 328-е ... "типа ошиблись" :D. Ну не выкидывать же - 5 шт ! Я на них как ...на кошках ( некто Балбес) ... тренироваться буду - столько слов новых уже узнал !! :)