возможно мне это пока трудно понять. Но у меня эти 2 светодиода будут много разной информации давать. Разная частота моргания, разное количество и т.д. поэтому в каждой функции это будет прописано отдельно. Вообще для меня уже прорыв того, что я весь этот код не в теле основного цикла пишу, а догадался разделить на функции) вчера вот осваивал ацп. сегодня запустил, правда уже на меге8. Дошел до того, что нужно обрабатывать нажатия кнопок. Причем разная длительность - разный результат отсюда и появились эти переменные с разными индексами Если направите в правильное русло, буду благодарен. но прошу не удивляйтесь - я так учусь)

Комментарии: 18

  1. 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 и это будет являться коротким нажатием.. Вот только вопрос. А работает ли таймер, когда нажата кнопка. Т.к. кнопка у меня уже в качестве прерывания сделана

Не нашли ответ?

Вам также может быть интересно