А я нет! Пытаюсь запустить эту блядскую ебанину, но нихуя не получается Значит, эта хрень должна заставить фотоаппарат делать фото с определенным промежутком времени - это происходит за счет digitalWrite (HIGH) Сейчас вместо камеры стоит светодиод, потому что это удобнее
При помощи энкодера задаются две переменные step - пауза между снимками photo - количество снимков Простая кнопочка должна включать процесс съемки
Итак, я написал код для энкодера и кнопки, также написал отдельно функции выполняющую съемку (startPhoto) Как мне включать эту функции при помощи "button"?
>>229402338 (OP) Зачем ты так все усложняешь? Задача у тебя в чем состоит? Нажал на кнопку - делаешь фотографии с заданным интервалом, нажал еще раз - ничего не делаешь. Я правильно понял?
Сейчас ситуация такая Если код выглядит вот так, то он выполняет всё и сразу, из-за чего ардуинка начинает тупить. Логично, что так происходит, но как это исправить?
>>229402400 Энкодером задаешь количество кадров и промежуток времени между каждым фото Кнопка должна этот процесс включать после того, как высталены настройки
>>229402543 Но ты вообще такую хуйню пишешь - бесполезные условия, которые ничего не вызывают; функции без параметров пытаешься еще вызывать; брейки, которые никогда не выполнятся у тебя точно.
>>229402338 (OP) >Как мне включать эту функции при помощи "button"? Если кнопка нажата, запускаешь свой цикл.
Если хочешь отключать и включать на кнопку съёмку, то сделай цикл в котором проверяется переменная, включено или нет. Если включено - запускаешь цикл. Если не включено, то ничего не делаешь, а дальше проверяешь состояние переменной.
>>229403373 Блять, ты ничего толком и не поменял, только строчки симпатично расставил Они в первой версии так и стояли, пока я не начал во все стороны всякое говно перемещать
У знакомой старая зеркалка кенон, на неё нельзя прошивку с таймлапсом поставить, приходится вот такую хуйню по гайдам строить
Оп, давай сюда техзадание, разбери полный алгоритм работы со стороны пользователя, по типу: выбрать интервал энкодером, нажать на кнопку, еблысть чё происходить должно. Воот. После этого самому понятнее станет, а уж мне тем более. Ну и помогу советом как минимум. А как максимум - кодом. Мимо-анон-написавший-бортовой-компьютер-для-своей-ласточки-на-stm32f103c8t6
>>229403754 >boolean >digitalWrite >delay(1000) Уебанский процессинг-вайринг. Говно без задач
>>229403807 Нахуй вы ебётесь со своими труфолс и лоухай? Ебашь 1 и 0, понятно и везде работает. Через регистры лезь, в конце концов. А лучше вместо boolean юзать uint8_t, так хоть размерность известна. И вообще нахуй c++, ему в embedded не место вообще, только голый си или асм вообще.
При помощи поворота энкодера задается количество фотографий, которые надо сделать (photo) Если энкодер нажат и поворачивается, то изменяется интервал между фотографиями (step) После того, когда настроены интервал и количество фото, нажатие кнопки включает съемку Фотоаппарат будет делать выбранное количество фото с указанным интервалом
>>229403864 >понятно и везде работает >лучше вместо boolean юзать uint8_t > асм вообще. Мне стыдно за тебя.
>>229403884 >кому вообще это говно сдалось? Мне интересно стало, по доке digitalRead возвращает лоухай, а ты ебошишь !digitalRead. C точки зрения типизации это хуета, но не знаю, как там у ардуинщиков принято.
>>229404062 Вообще, зависит от потрохов компилятора, но имхо юзать вместо булева 1 и 0 охуенно дико. Опять же >не знаю, как там у ардуинщиков принято. Дрочитьупоминать на асму, когда есть достаточно удобная среда для разработки - ну такое. >нахуй c++ Чтобы не ебаться с си, разумеется. Свистоперделки пилить ещё ладно, но библиотеки писать на си без необходимости имхо лишний геммор. >регистры Насколько я помню, можно проебаться с операциями в коде и из-за этого у тебя будет проебанные регистры после компиляции но вроде это грозит по большей части для double. Опять же, зависит от потрохов.
>>229403891 >>229403918 Смотри, анон. Выкинь лишнюю кнопку, всё делается энкодером. Потом как выставил просто кликни им и всё. #include <GyverEncoder.h> Encoder enc(CLK, DT, SW);
word set_shotCount = 0; unsigned long set_shotInterval = 0; boolean lastButtonState = 0; //Положение кнопки в предыдущий проход цикла boolean btn_pressed = 0; boolean btn_clicked = 0; long btn_active_encoder_change = 0;
>>229404411 Спасибо! Мне больше нравится вариант с отдельной кнопкой, потому что количество фоток настраивается нажатым энкодером и поворотом, чтобы не было случайных запусков, подключил ещё одну кнопку Ещё раз спасибо!!
>>229404456 >чтобы не было случайных запусков Можно впилить проверку на удержание, если дольше 0.2 сек, например, то take_shots не вызывается. Чисто клики обрабатывать.
>>229404471 Либа говногайвера для облегчения работы с энкодером. Интересно то, что на дуине надо библиотеку для этого писать, а на стм это 5 строчек кода и таймер сам за тебя это делает, только счётчик читай.
>>229404573 Ну, для начинающих стм не вариант, там пизда поначалу всё запутанным кажется. Дуина самое то для этого. В авр регистров сто, а в стм - гораздо больше, штук 500 если не ошибаюсь, там ты заебёшься с конфигурациями. 5 строк кода светит в случае, если ты уже неделю ебёшься с блядским энкодером, и уже настолько в поздании преисполнился, что сам эти клики считаешь по шуму электронов ещё до того, как контроллер их обработает.