Официальный сайт компании Arduino по адресу arduino.cc
Как пошагово проверить созданную программу
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Чт, 15/12/2016 - 10:34
В ARDUINO IDE 1.6.9 Genuino разве нет возможности пошаговой проверки программ. Я написал простую программу
/* * Бегущий огонек, два огонька от центра к краям и обратно. Шкала светодиодов подключена к группе пинов расположенных * подряд от 2 до 11 pin. */ #define FIST_LED_PIN 2 #define LAST_LED_PIN 9 #define pause 1000 int pin; void setup() { /* * Выполняем pinMode в цикле for для каждого пина * (переменная pin) от первого ( =FIST_LED_PIN) до * последнего включительно ( <=LAST_LED_PIN), всякий раз продвигаясь * к следующиму ( ++pin увеличивает значение pin на единицу). * Так все пины от 2-го по 11-й друг за другом станут выходами */ for (int pin=FIST_LED_PIN; pin<=LAST_LED_PIN; pin++) { pinMode(pin, OUTPUT); digitalWrite(pin, LOW); } } void loop() { // Цикл движения огоньков от центра к крайним светодиодам for (int i=0;i<4;i++) { pin=4+i; digitalWrite(pin, HIGH); pin=3-i; digitalWrite(pin, HIGH); delay(pause); pin=4+i; digitalWrite(pin, LOW); pin=3-i; digitalWrite(pin, LOW); delay(pause); } // Цикл движения огоньков от крайних светодиодов к центральным for (int i=4;i<0;i--) { pin=3+i; digitalWrite(pin, HIGH); pin=4-i; digitalWrite(pin, HIGH); delay(pause); pin=3+i; digitalWrite(pin, LOW); pin=4-i; digitalWrite(pin, LOW); delay(pause); } }
но она собранная на монтажной плате не работает так как нужно, но при просчете каждого шага программы на бумаге выходит так как задумывалось. Поэтому хотелось бы используя пошаговый режим работы программы просматреть как она работает с
просмотром выходных регистров.
Выводите всё, что Вам нужно в монитор порта и смотрите.
Вы бы написали как нужно и как работает и чем работа и нужно отличается. Тогда бы можно было подумать над листингом. А так не понятно что вас не устраивает. Программа рабочая.
В ARDUINO IDE 1.6.9 Genuino разве нет возможности пошаговой проверки программ. Я написал простую программу
Наверное потому что, программа выполняется не в иде , а в мк, как вы себе это представляете? Как вам уже сказали, выводи в монитор, но что бы поспеть за мк, делеев натыкай в спорные места.
Вы бы написали как нужно и как работает и чем работа и нужно отличается. Тогда бы можно было подумать над листингом. А так не понятно что вас не устраивает. Программа рабочая.
Выводите всё, что Вам нужно в монитор порта и смотрите.
Serial.print("a=");
Serial.println(a);
Предвижу ошибку компиляции типа "a doesn't declared in this scope"...
не проще было написать цифру 2 и цифру 9? или пины у вас динамические по дуине бегают?
хороший программист, ленивый программист :))
вам триггер нужен, стоб сначала от центра, переключаете триггер потом к центру.
повторитель на стоп?
сколько всего светодиодов?
Пошаговая отладка есть только в серьёзных IDE, типа Atmel Studio. Там можно пошагово смотреть выполнение программы. При этом видно содержимое регистров, переменных и т.д. Но нужен ещё железный отладчик. В общем, с ардуино этот вариант не получится.
Наверное потому что, программа выполняется не в иде , а в мк, как вы себе это представляете?
Представьте, в серьёзных IDE такое возможно. Информация из МК через отладчик передаётся обратно в IDE и можно видеть выполнение программы в IDE.
Ну тогда в 46 строке i<0 поменяйте на i<1
Можно проверить при помощи виртуальной машины отладки.
Пошаговая отладка есть только в серьёзных IDE, типа Atmel Studio. Там можно пошагово смотреть выполнение программы. При этом видно содержимое регистров, переменных и т.д. Но нужен ещё железный отладчик. В общем, с ардуино этот вариант не получится.
Наверное потому что, программа выполняется не в иде , а в мк, как вы себе это представляете?
Представьте, в серьёзных IDE такое возможно. Информация из МК через отладчик передаётся обратно в IDE и можно видеть выполнение программы в IDE.
Представляю, но форум вроде о опенсурс фри балалайке ардуине???
хотя к PDE вроде прикрутили какой то.
На самом деле можно отлаживать код Arduino и при помощи AVR Studio, используя HappyJTAG2, но для этого нужны две вещи: подключиться к выводам JTAG и иметь объектный файл проекта, собранный с отладочными ключами. Владельцы ардуино не способны, к сожалению, ни на первое, ни на второе. Поэтому они считают, что отладка не поддерживается.
На самом деле можно отлаживать код Arduino и при помощи AVR Studio, используя HappyJTAG2, но для этого нужны две вещи: подключиться к выводам JTAG и иметь объектный файл проекта, собранный с отладочными ключами. Владельцы ардуино не способны, к сожалению, ни на первое, ни на второе. Поэтому они считают, что отладка не поддерживается.
Так на Ардуино она действительно не поддерживается (см. документацию по Ардуино).
http://www.visualmicro.com/page/User-Guide.aspx?doc=Debugging-Explained....
На самом деле можно отлаживать код Arduino и при помощи AVR Studio, используя HappyJTAG2, но для этого нужны две вещи: подключиться к выводам JTAG и иметь объектный файл проекта, собранный с отладочными ключами. Владельцы ардуино не способны, к сожалению, ни на первое, ни на второе. Поэтому они считают, что отладка не поддерживается.
Так на Ардуино она действительно не поддерживается (см. документацию по Ардуино).
Я отлаживаю код Arduino под отладчиком JTAG ICE mkII в AVR Studio, а вы продолжайте смотреть в документацию.
Так выглядит отладка в AVR Studio (кликабельно).
Я отлаживаю код Arduino под отладчиком JTAG ICE mkII в AVR Studio, а вы продолжайте смотреть в документацию.
О_О
ебанутся туфли гнутся! - кто-то в тырнете пользуется отладчиком JTAG ICE mkII в AVR Studio.
Для Вашей ситуации самое простое - завести на выходы светодиоды, чтобы видеть физические проявления.
Подключить кнопку, чтобы разрешать шаг, или выполнение блока программы.
написать do-while на нажатие этой кнопки, чтобы останавливаться в цикле ожидания нажатия кнопки и видеть статику в тех точках прграммы, в которые вы его вставите.
перед do-while вставлять вывод в монитор требуемых переменных.
фактически Вы получаете достаточно информативный отладчик.
Жаль, что на этом форуме нет модерации. Бан здесь плачет уже по многим. Развелось пустословов и матершинников немеряно, превратив сайт в флудопомойку. Такой форум стыдно куму показать или сослаться.
Так на Ардуино она действительно не поддерживается (см. документацию по Ардуино).
Я отлаживаю код Arduino под отладчиком JTAG ICE mkII в AVR Studio
Вы может отлаживать код в AVR студии или ешё в чём-нибудь. Но делаете Вы это в AVR студии именно потому, что Ардуино таки вещей не поддерживает.
Вы, похоже, не видите разницы между понятиями "Ардуино" и "любая плата на основе МК AVR". МК понимает такие вещи, а Ардуино - нет. Ардуино - некая вполне определённая концепция, но до Вас это пока не дошло.
Если у Вас другое мнение, имейте его на здоровье.
ЕвгенийП, Arduino IDE специально собирает проект с отладочной информацией. Поэтому в выходной папке есть elf-файл, который используется для отладки.
> Ардуино - некая вполне определённая концепция, но до Вас это пока не дошло.
Не надо выдумывать ерунду. Это обычная простейшая плата с мк AVR и небольшой обвязкой. Её программирование ничем не отличается от программирования мк AVR. ТО ЕСТЬ вообще НИЧЕМ, поскольку Arduino IDE использует компилятор avr-gcc, в который встроена поддержка отладки. Компилятор является частью Arduino IDE (может вы действительно не знаете этого?), поэтому Arduino IDE в части результатов компиляции отладку поддерживает, чем некоторые и пользуются (см. выше про elf-файл).
ЕвгенийП, Arduino IDE специально собирает проект с отладочной информацией. Поэтому в выходной папке есть elf-файл, который используется для отладки.
> Ардуино - некая вполне определённая концепция, но до Вас это пока не дошло.
Не надо выдумывать ерунду. Это обычная простейшая плата с мк AVR и небольшой обвязкой. Её программирование ничем не отличается от программирования мк AVR. ТО ЕСТЬ вообще НИЧЕМ, поскольку Arduino IDE использует компилятор avr-gcc, в который встроена поддержка отладки. Компилятор является частью Arduino IDE (может вы действительно не знаете этого?), поэтому Arduino IDE в части результатов компиляции отладку поддерживает, чем некоторые и пользуются (см. выше про elf-файл).
Полковник был так непроходимо глуп, что офицеры, завидев его издали, сворачивали в сторону, чтобы не выслушивать от него такой истины, что улица состоит из мостовой и тротуара и что тротуар представляет собой приподнятую над мостовой панель вдоль фасада дома. А фасад дома -- это та часть, которая видна с мостовой или с тротуара. Заднюю же часть дома с тротуара видеть нельзя, в чем мы легко можем убедиться, сойдя на мостовую.
(с) Я.Гашек.
Не надо выдумывать ерунду.
сам бы не выдумывал ерунду - пока Атмел не опубликует исходники своего JTAG ICE mkII под свободной лицензией, можешь не постить ересь.
разница в лицензировании:
Дуино - бесплатно или за деньги.
Атмел Студио - только за деньги.
*кстати, вкуда канул http://www.simonqian.com/en/AVRminiProg/ ? загнобили копирасты или где?
> Ардуино - некая вполне определённая концепция, но до Вас это пока не дошло.
Не надо выдумывать ерунду. Это обычная простейшая плата с мк AVR и небольшой обвязкой.
Ну, я же говорю: "не дошло".
Не надо выдумывать ерунду. Это обычная простейшая плата...
Ардуино - это не плата.