Re: Глупый вопрос по ардуино
Цитата:
Заливаю скетч, все работает. Отключаем питание, включаем - ардуино скетч забыло.
Это из области фантастики, такого не должно быть.
Цитата:
или у ардуино в принципе энергозависимая память
Да
Цитата:
Если из-за ресета, то как его отключить? Инструкцию к ардуино читал, но там только про само наличие функции авто-ресета, а про ее отключение я не нашел.
Reset тут не причем.
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
Chip
Да
Ну так если память зависит от питания, то она обнуляется, если питания нет?
Цитата:
Это из области фантастики, такого не должно быть.
Хм. питание на ардуино подается по Vin +она подключена к компу по юсб. Заливаем скетч, все работает + программа общается с ардуино по com-порту, мигает светодиод
Выключаем питание по Vin, выключаем юсб. Питания нет, ардуино выключено. Включаем все назад - светодиод не мигает, скетч не выполняется, в программе внизу куча красного текста, на ком-порту тишина.
что я не так делаю?
Re: Глупый вопрос по ардуино
Цитата:
Ну так если память зависит от питания, то она обнуляется, если питания нет?
У ардуино 3 типа памяти,
1-Flash память программ
2-EEPROM энергонезависимая память, для хранения настроек и прочего.
3-Оперативная память
При прошивке программа записывается в память программ и остается там до следующей прошивки.
Цитата:
Хм. питание на ардуино подается по Vin +она подключена к компу по юсб. Заливаем скетч, все работает + программа общается с ардуино по com-порту, мигает светодиод
Выключаем питание по Vin, выключаем юсб. Питания нет, ардуино выключено. Включаем все назад - светодиод не мигает, скетч не выполняется, в программе внизу куча красного текста, на ком-порту тишина.
что я не так делаю?
Что за программа? Программа не восстановит свою работу , ее нужно закрыть подключить ардуино , а потом опять запустить
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
Chip
Что за программа? Программа не восстановит свою работу , ее нужно закрыть подключить ардуино , а потом опять запустить
ну пока что там банальный подогрев жесткого диска с выводм температуры в ком.
когда заводится двигатель - появляется питание на ардуино, и я надеялся, что ардуино начнет выполнять свою программу - посмотрит температуру и в зависимости от этого либо включит подогрев, либо запустит комп.
Re: Глупый вопрос по ардуино
Может быть у тебя стабилизатор неисправен?
Re: Глупый вопрос по ардуино
да, вроде, все новое. как это выяснить?
Re: Глупый вопрос по ардуино
Сегодня подал питание на ардуину по Vin - все заработало, реле щелкает.
Странно, ну ладно.
Re: Глупый вопрос по ардуино
Если будешь использовать с подключением к компьютеру , то софтовый reset отключи.
Re: Глупый вопрос по ардуино
Подскажите, когда значение для millis() обнуляется? В каждом проходе Loop{} или только по питанию? WatchDog обнулит его?
Re: Глупый вопрос по ардуино
millis обнуляется через 50 дней беспрерывной работы
Если сработал WatchDog Timer то все регистры обнуляются, потому что происходит сброс контроллера.
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
Chip
millis обнуляется через 50 дней беспрерывной работы
Это я прочитал. А что есть "прерывание" работы кроме снятия питающего напряжения? RESET - прерывание работы? А "софтовый" перезапуск таймера?
Цитата:
Если сработал WatchDog Timer то все регистры обнуляются, потому что происходит сброс контроллера.
Это я тоже представляю, но не знаю, где хранится величина, возвращаемая millis. Если в регистре, то значит будет обнуляться?
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
edw123
Это я прочитал. А что есть "прерывание" работы кроме снятия питающего напряжения? RESET - прерывание работы? А "софтовый" перезапуск таймера?
RESET можно грубо сравнить со снятием питания и потом его подключением.
Про таймер не понял вопроса.
Цитата:
Сообщение от
edw123
Это я тоже представляю, но не знаю, где хранится величина, возвращаемая millis. Если в регистре, то значит будет обнуляться?
в регистре и будет обнулятся при RESET
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
Chip
Про таймер не понял вопроса.
Я тут "в начале" и не совсем... :) Если правильно я понял, то: при WatchDog - обнулится. При RESET - обнулится. При начале нового цикла loop - НЕ обнулится?
ПРо таймер - в библиотеке timer есть функция сброса таймера setTimer() - вот я её имел ввиду - с её помощью можно обнулить Millis()? Ну и ли по другому - как в тексте скетча сделать обнуление millis()?
Re: Глупый вопрос по ардуино
Первая часть правильно, вторая, про таймер, неправильно.
setTimer и библиотека timer никакого отношения к функции millis() не имеет.
Если хочется "обнулить" millis(), то надо использовать свою переменную, записав в нее значение millis() в момент обнуления, а затем вычитать это значение из результата millis(), тогда, когда надо выполнить отсчет времени.
примерно так:
long t0; // глобальная переменная
...
t0 = millis(); // "обнуление"
...
t = millis() - t0; // получение интервала времени, с учетом обнуления
...
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
_msd
Первая часть правильно, вторая, про таймер, неправильно.
setTimer и библиотека timer никакого отношения к функции millis() не имеет.
Насколько я понимаю, millis() использует при своей работе таймер. Вот его и хочется обнулить.
Цитата:
Сообщение от
_msd
Если хочется "обнулить" millis(), то надо использовать свою переменную, записав в нее значение millis()
Это "слишком просто" и не интересно. Интересно иметь в millis() значение в типе word, а не unsigned long и не заниматься многоразрядной арифметикой.
Re: Глупый вопрос по ардуино
По моему проще таймер настроить и использовать свою переменную
Re: Глупый вопрос по ардуино
Цитата:
Сообщение от
Chip
По моему проще таймер настроить и использовать свою переменную
Ну такой вариант я тоже рассматриваю, но надо же и до конца с millis() разобраться...
Millis() таймером и отрабатывается и наверное сбросить его можно ассемблерной вставкой записью в регистр таймера?