возможно мне это пока трудно понять. Но у меня эти 2 светодиода будут много разной информации давать. Разная частота моргания, разное количество и т.д. поэтому в каждой функции это будет прописано отдельно. Вообще для меня уже прорыв того, что я весь этот код не в теле основного цикла пишу, а догадался разделить на функции) вчера вот осваивал ацп. сегодня запустил, правда уже на меге8. Дошел до того, что нужно обрабатывать нажатия кнопок. Причем разная длительность - разный результат отсюда и появились эти переменные с разными индексами Если направите в правильное русло, буду благодарен. но прошу не удивляйтесь - я так учусь)
Комментарии: 18
Anonim
Боюсь представить что там будет в результате.
Soad
Изобретаю велосипед, которым бьют)
Sergy
Хотя бы вот так static inline void turn_on_green() { GRN=1; } static inline void turn_off_green() { GRN=0; } void blink_green(unsigned int delay1, unsigned int delay2, unsigned char times) { for (unsigned char i=0; i.<
Anonim
Ну такое себе извращение. Нормально делаешь функцию led() и передашь в неё помигать зелёным с таким интервалом
Sergy
а если надо не мигать, а включить, и выключить только по определённому условию?
Anonim
Туда же и передавай
Anonim
Можешь туда команду строкой отдавать
Sergy
да, MicroPython сразу и делать exec() или eval() =)
Anonim
И джейсоном все обмазать потолще
Soad
Это значительно упрощает. Но да. Мне потребуются сложные. Например зелёный/красный. Или моргание не 1 раз а несколько
Sergy
ну вот там выше есть times как раз для этого blink_green(200,200,1); - 1 раз blink_green(200,200,2): - 2 раза
Soad
До сих пор не знаю как работает функция for
Sergy
FreeRTOS берите это не функция) и наверное лучше тогда ардуину взять https://github.com/Yveaux/LedPattern https://github.com/fulf/arduino-led-blinker
Soad
Насколько я понимаю, на ардуино вообще простой язык. Тут хоть видно регистры и можно понять и разобраться как работает
Sergy
нет, там C++ просто можно найти библиотеки, поставить и проверить. те же библиотеки можно и к C прикрутить, или взять avr gcc и С++ компилить, но тоже прикручивать надо. и в этом сложность будет, разобраться с подключением библиотек в код.
Soad
Так ведь codevisionavr тоже позволяет библиотеки привязывать. delay яркий тому пример. Разве нет?
Sergy
позволяет, только это сложнее там делать когда с нуля
Soad
Мне требуется разделить нажатие на кнопку на 2 типа. Долгое и короткое. Правильно ли я думаю.. В теле прерывания по переполнения таймера раз в какое то количество времени проверять нажатие кнопки и соответственно увеличивать значение переменной. Если значение стало выше порога, значит это долгое нажатие. Если кнопку отпустить, значит значение сбросится в 0 и это будет являться коротким нажатием.. Вот только вопрос. А работает ли таймер, когда нажата кнопка. Т.к. кнопка у меня уже в качестве прерывания сделана