FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Суббота, 18.11.2017, 11:24
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей, Олег, Anydy 
Форум » Основной » Спросить у знатоков » Вопрос по созданию блока
Вопрос по созданию блока
seri0shka Дата: Воскресенье, 12.11.2017, 21:35 | Сообщение # 1
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 1
Репутация: 0
Статус: Offline
Как сделать блок, который работал бы только в момент подачи питания на ардуино? Есть устройство с несколькими режимами работы (три режима в зависимости от напряжения на аналоговом входе, считай "джампер"). Сейчас опрос происходит постоянно в цикле и все функции выполняются как положено. Но хочется оптимизировать, чтоб не отвлекалось на лишнее.
 И, кстати, можно ли в void setup() вставить
if((analogRead (0))... 
и т.д.?
 
pan Дата: Воскресенье, 12.11.2017, 21:51 | Сообщение # 2
Генерал-лейтенант
Группа: Проверенные
Сообщений: 996
Награды: 38
Репутация: 35
Статус: Offline
Цитата seri0shka ()
Как сделать блок, который работал бы только в момент подачи
 создаете некую переменную, например Х и даете некое значение по умолчанию


 затем в её свойствах включаете выполнение по условию



делаете нужный код па плате, и в конце например обнуляете переменную.



больше эта плата выполняться не будет.
если понадобится ее запустить , делаете переменную Х = 1
 
seri0shka Дата: Воскресенье, 12.11.2017, 22:56 | Сообщение # 3
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 1
Репутация: 0
Статус: Offline
То есть заново компилировать и прошивать? Смысл именно в том, чтоб в любой момент сменить режим работы без подключения к компьютеру и без наличия нужного ПО, просто переставив перемычку. Залить один раз навсегда.
 
pan Дата: Понедельник, 13.11.2017, 08:22 | Сообщение # 4
Генерал-лейтенант
Группа: Проверенные
Сообщений: 996
Награды: 38
Репутация: 35
Статус: Offline
привяжите переменную к перемычке ( входу) , к кнопке, ..  да хоть к чему
 
seri0shka Дата: Понедельник, 13.11.2017, 18:26 | Сообщение # 5
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 1
Репутация: 0
Статус: Offline
И получим то, что работает сейчас- постоянный опрос аналогового входа, одна из самых длительных операций. Причём сработает этот вход возможно один раз за несколько месяцев.
 Сейчас я сделал на пробу блок, который в результате компиляции выдаёт такую конструкцию:

bool out_167848791_1;
void setup()
{
if(( (analogRead (7)))>(500))
{out_167848791_1 = 1;}
else
{out_167848791_1 = 0;}
}
void loop()
{ }
 
Блок вполне работает, при изменении состояния входа во время работы реакции нет (что и было нужно), а в момент повторной подачи питания режим работы меняется на нужный. Единственное, что смущает, это законность такой операции в фунции  void setup.
 Но, скорей всего, оставлю постоянный опрос входа в основном цикле скетча, от греха подальше.
 
Nikan Дата: Понедельник, 13.11.2017, 18:36 | Сообщение # 6
Полковник
Группа: Проверенные
Сообщений: 404
Награды: 12
Репутация: 10
Статус: Offline
Цитата seri0shka ()
законность такой операции в фунции void setup.
абсолютно законно.
setup выполняеся один раз перед стартом основной программы, для конфигурации оборудования, и выполнения того что надо перед основной.
в вашем случае надо оставить этот кусок в setu_е
 
Anydy Дата: Понедельник, 13.11.2017, 19:05 | Сообщение # 7
Генерал-майор
Группа: Модераторы
Сообщений: 523
Награды: 13
Репутация: 7
Статус: Offline
Цитата Nikan ()
setup выполняеся один раз перед стартом основной программы, для конфигурации оборудования
Опа...а мужики то и не знали))))
Щучу конечно, но если человек знает что такое Setup то думаю должен понимать что это инициализация Микроконтроллера)))


blynk.su
 
Dev1 Дата: Понедельник, 13.11.2017, 21:04 | Сообщение # 8
Генерал-лейтенант
Группа: Проверенные
Сообщений: 626
Награды: 12
Репутация: 17
Статус: Offline
Цитата Anydy ()
это инициализация Микроконтроллера
crazy 




Win7/10-64 FLProg v2.5.1 (Beta v2.5.4) external IDE 1.8.5

 
pan Дата: Понедельник, 13.11.2017, 21:07 | Сообщение # 9
Генерал-лейтенант
Группа: Проверенные
Сообщений: 996
Награды: 38
Репутация: 35
Статус: Offline
Цитата seri0shka ()
И получим то, что работает сейчас- постоянный опрос
 вы видимо совсем не поняли о чем я вам написал
 
seri0shka Дата: Понедельник, 13.11.2017, 21:37 | Сообщение # 10
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 1
Репутация: 0
Статус: Offline
Возможно и не понял. Но я правильно понял, что для смены режима скетч заливать по-новой нужно?
 
pan Дата: Понедельник, 13.11.2017, 22:08 | Сообщение # 11
Генерал-лейтенант
Группа: Проверенные
Сообщений: 996
Награды: 38
Репутация: 35
Статус: Offline
нет. не нужно.
сделайте сколько надо режимов на платах и выполняйте нужные по условию.
 
seri0shka Дата: Понедельник, 13.11.2017, 22:46 | Сообщение # 12
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 1
Репутация: 0
Статус: Offline
if(( (analogRead (7)))>(500))
Это и есть выплнение по условию. Но оно сейчас выполняется в каждом void loop() и отнимает ценное время. Об этом я и писал.
 
Nikan Дата: Понедельник, 13.11.2017, 23:14 | Сообщение # 13
Полковник
Группа: Проверенные
Сообщений: 404
Награды: 12
Репутация: 10
Статус: Offline
блок в setyp. там ему место, на то сетуп и нужен - настроить конфигурацию, как оборудования так и программы.

Цитата Anydy ()
инициализация Микроконтроллера)))
зы, почему то всегда предполагал, что инициализация происходит сразу после начала работы генератора, и внутренними командами МК
 
Anydy Дата: Вторник, 14.11.2017, 05:02 | Сообщение # 14
Генерал-майор
Группа: Модераторы
Сообщений: 523
Награды: 13
Репутация: 7
Статус: Offline
Цитата Nikan ()
зы, почему то всегда предполагал, что инициализация происходит сразу после начала работы генератора, и внутренними командами МК
Да, сорри не верно выразился....
Инициализация конечно на старте МК, в разделе Setup - Set (Установка) Up (Поднятие)
То есть задаем начальные параметры.

Добавлено (14.11.2017, 05:02)
---------------------------------------------

Цитата Dev1 ()
The setup() function is called when a sketch starts. Use it to initialize variables, pin modes, start using libraries, etc.The setup() function will only run once, after each powerup or reset of the Arduino board.
Ну могу же иногда оговорится....мы же профи...и понимаем что такое Setup )))))


blynk.su
 
pan Дата: Вторник, 14.11.2017, 08:24 | Сообщение # 15
Генерал-лейтенант
Группа: Проверенные
Сообщений: 996
Награды: 38
Репутация: 35
Статус: Offline
Цитата seri0shka ()
if(( (analogRead (7)))>(500))Это и есть выплнение по условию
 мне кажется вы говорите об условии выполнения блока а не платы...
 
Форум » Основной » Спросить у знатоков » Вопрос по созданию блока
Страница 1 из 212»
Поиск:

FLProg © 2017
Яндекс.Метрика