Казалось вопрос простой :). Так, тогда рассмотрим точнее. Ардуина здесь в качестве генератора, генератор выдает импульсы ( прямоугольные), таймер топ задаёт частоту импульсов. Я хочу ее менять. Я могу по примеру выше с for так же сделать? Я бы мог просто попробовать и все, но собирать все на макете не охота, хочу просто прошить камень, запаять его в плату и все.

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

  1. Aleksandr

    Можешь менять частоту, можешь делать задержки через делей

  2. Anonim

    Можешь

  3. Red

    Какая частота. Диапазон?

    • Aleksandr

      Чистота

    • Region0123

      Цифра в дефайне 100.....400 меняет частоту 3кГц.....15кГц примерно

      • Red

        delay(i) ;

        • Region0123

          Не, вот этого не нужно :)

          • Aleksandr

            Это как бы просто такая декларация для канпелятора, чтобы заменял по ходу компиляции одни буквы на другие цифры, а не команда процессору

      • Aleksandr

        Дефайн ты не поменяешь в рантайме

        • Anonim

          Ну, такое;) а если?

          • Aleksandr

            Это как раз нужно доя того, чтобы все библиотеки знали о твоём намерении включить какую-то частоту, чтобы библиотеки соответствующим образом инициализировались Потому менять в рантайме частоту МК - это не самая хорошая идея, это взятие на себя ручного управления Ты должен сам знать, где ещё что на частоту таймера у тебя опирается, и убрать это :)

        • Region0123

          Дефайн понятно нет, а то что заменил сам дефайн? top (ggg) Int ggg; ggg=AnalodRead(A0); Так будет работать, только не по аналогу, а кнопками или энкрдером.

          • Red

            При чём тут генератор?

            • Region0123

              При том, что меняя значение timer_top , я меняю частоту выходного сигнала. я сидел и мерил это :)

              • Aleksandr

                Это текстовая подстановка, скорее, а не константа, но примерно :)

                • Vasil

                  Ну да, даже не примерно, а она и есть

              • Aleksandr

                Найди место, которое использует тимер_топ, там и увидишь код инициализации таймера Тебе нужно его вызывать с нужной тебе переменной :)

                • Region0123

                  вот все где он есть, мне проще просто переменную туда воткнуть

                  • Aleksandr

                    Ну вычислились переменные, дальше ищешь, куда они идут :)

          • Aleksandr

            Записью в порты настраиваются частоты таймера, найди место, в котором используется твой дефайн И увидишь, куда пихается тобою заданное в дефайне число Тебе туда же нужно пихать свои числа :) Чтобы изменить частоту

          • Vasil

            300 a int x = a; println("%d",x); 300 Это, считай, константа

        • Anonim

          #define btn 2 #define led 3 #define read_btn(pin) !digitalRead(pin) #define on_off(pin, x) digitalWrite(pin, x) void setup() { pinMode(btn, INPUT_PULLUP); pinMode(led, OUTPUT); } void loop() { on_off(led, read_btn(btn)); }

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

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