Казалось вопрос простой :). Так, тогда рассмотрим точнее. Ардуина здесь в качестве генератора, генератор выдает импульсы ( прямоугольные), таймер топ задаёт частоту импульсов. Я хочу ее менять. Я могу по примеру выше с for так же сделать? Я бы мог просто попробовать и все, но собирать все на макете не охота, хочу просто прошить камень, запаять его в плату и все.
Комментарии: 22
Aleksandr
Можешь менять частоту, можешь делать задержки через делей
Anonim
Можешь
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)); }