Arduino nano настройка частоты процессора
Добрый вечер! Прошу помощи у знатоков. Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards. А есть ли такая возможность задать частоту для компилятора в тексте скетча?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
почему бы тебе не задать этот вопрос на каком-то другом форуме?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Дык 21-ый век на дворе! Канешна.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
меняем погоду, редактируя прогноз
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Тут уже кнопку "установить нерабочие дни" донажимались на прошлой неделе студенты.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
Извиняюсь, сказал неточно: не "знаю" а "читал об этом" и сам не пробовал.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus Надо изменить в файле для компилятора, т.к. Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
Мне надо уменьшить вдвое перед началом один раз .arduino nano
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
Это уже даже не "хлеб безопасного кабеля", а просто "бред сивой кобылы".
Впрочем, если Вам доставляют удовольствие сексуальные опыты с собственным (и окружающих) мозгом, пожалуйста, трахайте :-) А когда надоест, сделайте как я сказал и убедитесь, что всё отлично работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus
Пришла мне в голову мысль, подарить вам Arduino Nano. ни одной не нашел - все попрятались, боятся.
Давно на форуме так народ не веселился.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
Я знаю это. И что? В IDE Нельзя понизить частоту из-за этого?
P.S.Кристал не помогает
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
И где тут обвязка? USB что-ли или кварц?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
похоже у него еще и с английским по нулям. протеус ему ясным языком пишет, что надо сделать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
это на этот чтоле?
В скетче ардуино? в общем случае ответ - нет
Эта проблема решается по другому. И в этой ветке озвучено уже два возможных решения. Но ты же всегда хочешь идти своим путем. Ищи сам.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А Гугл и прочие поисковики тебя уже нахер послали ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Дим-мычъ , ЛабЦентр не пора в тему звать? А то опять потом будете переживать, что они все веселье пропустили))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
Гугл знает толк в троллинге))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Признаю, протупил. Сделал как на картинке, частота повысилась,но всё равно не хочет работать, может комп не тянет.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не знаю - возможно модель херовая. У меня нанА в протеусе нормально отрабатывает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там написано что не работает в реальном времени, потому что цпу не тянет. Но в не реальном должно работать - растягивать временные интервалы на реальных морганиях. На диаграммах тики должны соответствовать времени выполнения реального устройства. Так что работать должно. Или учите английский.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
при 160 МГц тактовой? :)))) а подумать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сколько точек синусоиды моделироваить?
Даже из предварительно подготовленного массива вывод точек занимаемает несколько тактов. Соответственно частота синусоиды будет меньше тактовой на количество точек одного перода синусоиды умножить на количество тактов выводо точки. Если взять количество точек 32 и тактов около 12 то максимальная частота синусоиды будет гдето около 250 кГц.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
я так понял, чтоб ее увидеть нужно подключить лампочку и посмотреть. даже осциллограф не нужен..
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну да, можно обычную, накаливания, ватт хотя бы на 10-20, а то без лампочки, в полной темноте - не видно. ))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Это была javascript-капча, правильный ответ "95" :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
На обиженных воду возят.)))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
уже находил и пробовал ранее ,но он в Протеусе не работает, по крайней мере у меня . Решение для Протеуса нашёл, но оно не помогает))
Дело в том, что , например, понижая частоту в файле скетча в 2раза мы тем самым понижаем частоту работы МК в Протеусе тоже в два раза!
Так что проще тайминги пересчитать ( всего то на два поделить) когда надо , тем более не так часто приходится))
Спасибо всем, кто пытался помочь!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Понятно - несмотря на весь флейм - задачу ты так и не решил.
Это один вариант, если ты хочешь менять частоту "железа". Если же надо поменять настройки частоты при компиляции скетча - это делается редактированием нескольких строчек в файле boards.txt
Так что диагноз, что гугль тебя посылает - явно правильный. Вместо того чтоб давно найти ответ поиском -ты продожаешь, как дурак, пересчитывать задержки :))) Ну и в чем был смысл всех обсирать?
Добрый вечер! Прошу помощи у знатоков. Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards. А есть ли такая возможность задать частоту для компилятора в тексте скетча?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
почему бы тебе не задать этот вопрос на каком-то другом форуме?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Дык 21-ый век на дворе! Канешна.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
меняем погоду, редактируя прогноз
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Тут уже кнопку "установить нерабочие дни" донажимались на прошлой неделе студенты.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
Извиняюсь, сказал неточно: не "знаю" а "читал об этом" и сам не пробовал.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus Надо изменить в файле для компилятора, т.к. Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
Мне надо уменьшить вдвое перед началом один раз .arduino nano
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
Это уже даже не "хлеб безопасного кабеля", а просто "бред сивой кобылы".
Впрочем, если Вам доставляют удовольствие сексуальные опыты с собственным (и окружающих) мозгом, пожалуйста, трахайте :-) А когда надоест, сделайте как я сказал и убедитесь, что всё отлично работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus
Пришла мне в голову мысль, подарить вам Arduino Nano. ни одной не нашел - все попрятались, боятся.
Давно на форуме так народ не веселился.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
Я знаю это. И что? В IDE Нельзя понизить частоту из-за этого?
P.S.Кристал не помогает
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
И где тут обвязка? USB что-ли или кварц?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
похоже у него еще и с английским по нулям. протеус ему ясным языком пишет, что надо сделать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
это на этот чтоле?
В скетче ардуино? в общем случае ответ - нет
Эта проблема решается по другому. И в этой ветке озвучено уже два возможных решения. Но ты же всегда хочешь идти своим путем. Ищи сам.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А Гугл и прочие поисковики тебя уже нахер послали ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Дим-мычъ , ЛабЦентр не пора в тему звать? А то опять потом будете переживать, что они все веселье пропустили))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
Гугл знает толк в троллинге))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Признаю, протупил. Сделал как на картинке, частота повысилась,но всё равно не хочет работать, может комп не тянет.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не знаю - возможно модель херовая. У меня нанА в протеусе нормально отрабатывает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там написано что не работает в реальном времени, потому что цпу не тянет. Но в не реальном должно работать - растягивать временные интервалы на реальных морганиях. На диаграммах тики должны соответствовать времени выполнения реального устройства. Так что работать должно. Или учите английский.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
при 160 МГц тактовой? :)))) а подумать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сколько точек синусоиды моделироваить?
Даже из предварительно подготовленного массива вывод точек занимаемает несколько тактов. Соответственно частота синусоиды будет меньше тактовой на количество точек одного перода синусоиды умножить на количество тактов выводо точки. Если взять количество точек 32 и тактов около 12 то максимальная частота синусоиды будет гдето около 250 кГц.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
я так понял, чтоб ее увидеть нужно подключить лампочку и посмотреть. даже осциллограф не нужен..
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну да, можно обычную, накаливания, ватт хотя бы на 10-20, а то без лампочки, в полной темноте - не видно. ))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Это была javascript-капча, правильный ответ "95" :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
На обиженных воду возят.)))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
уже находил и пробовал ранее ,но он в Протеусе не работает, по крайней мере у меня . Решение для Протеуса нашёл, но оно не помогает))
Дело в том, что , например, понижая частоту в файле скетча в 2раза мы тем самым понижаем частоту работы МК в Протеусе тоже в два раза!
Так что проще тайминги пересчитать ( всего то на два поделить) когда надо , тем более не так часто приходится))
Спасибо всем, кто пытался помочь!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Понятно - несмотря на весь флейм - задачу ты так и не решил.
Это один вариант, если ты хочешь менять частоту "железа". Если же надо поменять настройки частоты при компиляции скетча - это делается редактированием нескольких строчек в файле boards.txt
Так что диагноз, что гугль тебя посылает - явно правильный. Вместо того чтоб давно найти ответ поиском -ты продожаешь, как дурак, пересчитывать задержки :))) Ну и в чем был смысл всех обсирать?
При написании публикации про ATtiny85 я обратил внимание на то, как реализовано изменение частоты микроконтроллера: достаточно выбрать нужное значение тактовой частоты в меню IDE Ардуино и затем выполнить команду "Записать загрузчик". А почему бы не сделать так же для Ардуино? Чтобы можно было простыми действиями настроить ее на тактирование либо от внешнего резонатора на 16МГц, либо от внутреннего RC-генератора на 8МГц. Кстати при тактировании от внутреннего генератора микроконтроллер можно извлечь из Ардуино, тем самым значительно снизить энергопотребление. В общем, тема весьма интересная, подробности под катом.
Что такое Optiboot
Optiboot - это загрузчик для AVR микроконтроллеров, созданный Питером Найтом (Peter Knight). В его основу легли труды нескольких разработчиков и групп (Jason P. Kyle, Arduino group, Spiff , AVR-Libc group, Ladyada), впоследствии он значительно развился. Загрузчик получился настолько удачным, что компания-разработчик Ардуино стала использовать его в своей плате Ардуино Уно. С недавнего времени Optiboot является официальным загрузчиком и для других плат на базе ATmega328p (Нано, Мини). По сравнению с использовавшимся в них старым загрузчиком Optiboot обладает рядом преимуществ:
Для того чтобы перевести Ардуино в один из перечисленных режимов достаточно выполнить 2 функции: set_sleep_mode(
Для указания режима используются константы:
- SLEEP_MODE_IDLE
- SLEEP_MODE_ADC
- SLEEP_MODE_PWR_DOWN
- SLEEP_MODE_PWR_SAVE
- SLEEP_MODE_STANDBY
- SLEEP_MODE_EXT_STANDBY
Содержание
Пробуждение при нажатии кнопки, уход в сон по таймауту
Другой пример: есть устройство с дисплеем, которое должно просыпаться при нажатии кнопки, а засыпать по истечении некоторого времени, чтобы пользователь успел увидеть всё необходимое на дисплее. В простейшем случае хватило бы задержки на несколько секунд перед уходом в сон. Но если предполагается дополнительное взаимодействие с пользователем (опрос элементов управления, изменение выводимой информации и т.д.), то в этом случае поможет следующий подход:
Здесь уход микроконтроллера в сон возможен только при выполнении условия: разница между текущим значением millis() и значением переменной tm должно быть больше 10 секунд. Для того чтобы отложить сон, достаточно записать в tm значение millis(), что и делается при пробуждении и при нажатии на кнопку.
Также в данном примере отключается подсветка дисплея (текстовый дисплей типа 20*4 или 16*2) при переходе микроконтроллера в режим энергосбережения и включается при выходе из него. Сделано это в большей степени для демонстрации. В реальном же устройстве лучше отключать питание дисплея, поскольку он не имеет режима энергосбережения, а отключение подсветки уменьшит ток недостаточно - экономия должна быть экономной.
- Аналого-цифровой преобразователь;
- Аналоговый компаратор;
- Детектор пониженного напряжения питания (Brown-Out Detector);
- Внутренний источник опорного напряжения;
- Сторожевой таймер;
- Порты ввода-вывода;
- Модуль внутрисхемной отладки.
Итак, продолжим эксперименты по снижению энергопотребления Ардуино. В предыдущей статье мы уже научились управлять тактовой частотой и сократили потребляемый Arduino Pro Mini ток до 1,24мА при напряжении питания 3.3В и частоте 1МГц. Попробуем теперь перевести микроконтроллер в спящий режим Power Down и отключить ненужные узлы.
В режиме Power Down продолжают работать АЦП и схема контроля питания. В приведенном скетче есть команды для их отключения. АЦП при необходимости потом можно будет включить установкой бита ADEN. Потребляемый Arduino Pro Mini ток с данным скетчем составил 136мкА.
Я считаю, это неплохой результат по сравнению с начальными 15мА.
Чтобы уменьшить потребление еще больше, придется отказаться от использования плат Ардуино и перейти на использование "голых" микроконтроллеров. Оцените, например, потребление ATmega328P при тактировании от внутреннего RC генератора в этой статье.
Советую также посмотреть следующую мою статью об управлении режимами энергосбережения Ардуино - Библиотека Low-Power.
Добрый вечер! Прошу помощи у знатоков. Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards. А есть ли такая возможность задать частоту для компилятора в тексте скетча?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
почему бы тебе не задать этот вопрос на каком-то другом форуме?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Дык 21-ый век на дворе! Канешна.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
меняем погоду, редактируя прогноз
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Тут уже кнопку "установить нерабочие дни" донажимались на прошлой неделе студенты.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Знаю, что можно изменить частоту процессора в ардуино, редактируя файл boards.
Извиняюсь, сказал неточно: не "знаю" а "читал об этом" и сам не пробовал.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А физически на железе как менять собрались? Или только в файла, а железо "само подтянется"?
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus Надо изменить в файле для компилятора, т.к. Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
Мне надо уменьшить вдвое перед началом один раз .arduino nano
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Proteus не тянет больше 8мгц, а arduino nano ,которая мне приглянулась по умолчанию в ide 16мгц. Приходится всё время пересчитывать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Димыч, это "хлеб безопасного кабеля" (по английски "брэд сэив кэйбыл")
Скажите протеусу вот так и не трахайте мозг ни себе ни другим:
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вашими б устами. Но увы эмулятор частоту повысить не позволяет. Понизить можно
Это уже даже не "хлеб безопасного кабеля", а просто "бред сивой кобылы".
Впрочем, если Вам доставляют удовольствие сексуальные опыты с собственным (и окружающих) мозгом, пожалуйста, трахайте :-) А когда надоест, сделайте как я сказал и убедитесь, что всё отлично работает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Железа пока не имею. Только начинаю и присматриваюсь. Моделирую в Proteus
Пришла мне в голову мысль, подарить вам Arduino Nano. ни одной не нашел - все попрятались, боятся.
Давно на форуме так народ не веселился.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Так ты не ардуино симулируешь, а просто камень без обвязки, гений.
Я знаю это. И что? В IDE Нельзя понизить частоту из-за этого?
P.S.Кристал не помогает
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
И где тут обвязка? USB что-ли или кварц?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
похоже у него еще и с английским по нулям. протеус ему ясным языком пишет, что надо сделать.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Готов ответить ещё на сотню наводящих вопросов, чтобы услышать ответ на свой простой вопрос
это на этот чтоле?
В скетче ардуино? в общем случае ответ - нет
Эта проблема решается по другому. И в этой ветке озвучено уже два возможных решения. Но ты же всегда хочешь идти своим путем. Ищи сам.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
А Гугл и прочие поисковики тебя уже нахер послали ?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Дим-мычъ , ЛабЦентр не пора в тему звать? А то опять потом будете переживать, что они все веселье пропустили))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
с таким способностями? :)
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сейчас вдруг аж сердце екнуло, а как он капчу то проходит? Сложно, наверное, со светофорами и велосипедами
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
Гугл знает толк в троллинге))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Странно что такой простой вопрос "трахает" кому-то мозги. Сочувствую.
Простите, Вы идиот или просто дурачок? Сочувствую.
Вы прочитали, что Вам пишут красными буквами ?
Там написано, что Вы выбрали внешние часы, но НЕ ЗАДАЛИ их частоту.
А теперь посмотрите на мою картинку и сделайте так, как я Вам говорил. И всё нормально заработает
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Признаю, протупил. Сделал как на картинке, частота повысилась,но всё равно не хочет работать, может комп не тянет.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Не знаю - возможно модель херовая. У меня нанА в протеусе нормально отрабатывает.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Там написано что не работает в реальном времени, потому что цпу не тянет. Но в не реальном должно работать - растягивать временные интервалы на реальных морганиях. На диаграммах тики должны соответствовать времени выполнения реального устройства. Так что работать должно. Или учите английский.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
На самом деле можно, для некоторых ардуин, программно разогнаться аж в два раза по команде, с 80 до 160 МГц, и потом если надо, вернуть обратно, тоже командой из кода.
а код есть глянуть ?
что то такого не встречал нигде
g esp8266 system_update_cpu_freq()
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Выходит можно частоту в 160mhz допустим сгенерировать на пине?
при 160 МГц тактовой? :)))) а подумать?
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сколько точек синусоиды моделироваить?
Даже из предварительно подготовленного массива вывод точек занимаемает несколько тактов. Соответственно частота синусоиды будет меньше тактовой на количество точек одного перода синусоиды умножить на количество тактов выводо точки. Если взять количество точек 32 и тактов около 12 то максимальная частота синусоиды будет гдето около 250 кГц.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
да ладно вам, там вон на другом пине аж 2460 МГц синусоида генерируется, чо уж :)
я так понял, чтоб ее увидеть нужно подключить лампочку и посмотреть. даже осциллограф не нужен..
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Ну да, можно обычную, накаливания, ватт хотя бы на 10-20, а то без лампочки, в полной темноте - не видно. ))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
светофоры фигня, мне как-то капча на арифметику попалась, что-то вроде "Решите пример 9 + 5 ="? ввожу 14 - "Ответ неверный" :(
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Это была javascript-капча, правильный ответ "95" :)
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Где-то недавно слышал: кто как обзывается, тот так сам и называетя)))
То есть Вы никогда в жизни не ошибаетесь?
Нет, просто никогда не обижаюсь, когда мне что-то подобное говорят (пруф). И Вам советую воспринимать это с известной самоиронией, а, главное, верить в себя и понимать, что в реальности к Вам это относиться не может :-)
Вы уже научились не обижаться? Можно говорить? Или заткнуться пока? :-)
На обиженных воду возят.)))
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
уже находил и пробовал ранее ,но он в Протеусе не работает, по крайней мере у меня . Решение для Протеуса нашёл, но оно не помогает))
Дело в том, что , например, понижая частоту в файле скетча в 2раза мы тем самым понижаем частоту работы МК в Протеусе тоже в два раза!
Так что проще тайминги пересчитать ( всего то на два поделить) когда надо , тем более не так часто приходится))
Спасибо всем, кто пытался помочь!
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Понятно - несмотря на весь флейм - задачу ты так и не решил.
Это один вариант, если ты хочешь менять частоту "железа". Если же надо поменять настройки частоты при компиляции скетча - это делается редактированием нескольких строчек в файле boards.txt
Так что диагноз, что гугль тебя посылает - явно правильный. Вместо того чтоб давно найти ответ поиском -ты продожаешь, как дурак, пересчитывать задержки :))) Ну и в чем был смысл всех обсирать?
Редактирование файла boards.txt
Перейдите в каталог Arduino_dir\hardware\arduino\avr\, где Arduino_dir - это каталог, в который установлена среда разработки Ардуино. У меня этот путь выглядит так: d:\Arduino\arduino-1.6.12\hardware\arduino\avr\. Перед внесением изменений в файл boards.txt я рекомендую сделать его резервную копию. Теперь открываем файл boards.txt в текстовом редакторе (подойдет notepad++ или другой, поддерживающий кодировку UTF-8, чтобы не было проблем с отображением русских букв в IDE Ардуино) и добавляем в него строку menu.clock=Тактирование
Затем находим секцию для Ардуино Уно (я опишу порядок действий применительно к Ардуино Уно, но таким же образом можно скорректировать секции других плат с поправкой на микроконтроллер):
- скорость загрузки - uno.upload.speed;
- значения фьюзов - uno.bootloader.low_fuses, .high_fuses, .extended_fuses;
- имя файла загрузчика - uno.bootloader.file;
- частоту микроконтроллера - uno.build.f_cpu.
uno.menu.clock.external16=Внешний резонатор 16МГц
uno.menu.clock.external16.upload.speed=115200
uno.menu.clock.external16.bootloader.low_fuses=0xFF
uno.menu.clock.external16.bootloader.high_fuses=0xDE
uno.menu.clock.external16.bootloader.extended_fuses=0xFF
uno.menu.clock.external16.bootloader.file=optiboot/optiboot_atmega328.hex
uno.menu.clock.external16.build.f_cpu=16000000L
uno.menu.clock.internal8=Внутренний RC-генератор 8МГц
uno.menu.clock.internal8.upload.speed=57600
uno.menu.clock.internal8.bootloader.low_fuses=0xE2
uno.menu.clock.internal8.bootloader.high_fuses=0xDE
uno.menu.clock.internal8.bootloader.extended_fuses=0xFF
uno.menu.clock.internal8.bootloader.file=optiboot/optiboot_atmega328_8.hex
uno.menu.clock.internal8.build.f_cpu=8000000L
uno.menu.clock.internal1=Внутренний RC-генератор 1МГц
uno.menu.clock.internal1.upload.speed=4800
uno.menu.clock.internal1.bootloader.low_fuses=0x62
uno.menu.clock.internal1.bootloader.high_fuses=0xDE
uno.menu.clock.internal1.bootloader.extended_fuses=0xFF
uno.menu.clock.internal1.bootloader.file=optiboot/optiboot_atmega328_1.hex
uno.menu.clock.internal1.build.f_cpu=1000000L
Для наглядности я приведу скриншот моего файла boards.txt, каким он был и каким стал после выполнения описанных изменений:
Таким образом мы описали меню из трех пунктов, для каждого из них указали скорость загрузки скетчей, значения фьюзов, имя файла загрузчика (об этом чуть позже) и частоту микроконтроллера. При помощи онлайн калькулятора вы можете расшифровать приведенные значения фьюзов и увидеть, как происходит выбор источника тактирования. И что для получения тактовой частоты 1МГц при работе от внутреннего RC-генератора используется деление частоты на 8 (фьюз CKDIV8).
Сохраните файл в кодировке UTF-8 без BOM и запустите IDE. Если все сделано правильно, то при выборе платы Arduino Uno вам станет доступно меню Инструменты->Тактирование. Но этих изменений пока еще мало. Если сейчас выбрать в меню, например, Внутренний RC-генератор 8МГц и выполнить запись загрузчика, то новые значения фьюзов, конечно, запишутся в микроконтроллер и он начнет работать с внутренним RC-генератором. Но мы потеряем возможность загружать в Ардуино новые скетчи, потому что записанный в нее загрузчик рассчитан на частоту 16МГц. Выход - скомпилировать загрузчик для работы на частотах 8МГц и 1МГц. Если у вас нет желания заморачиваться с компиляцией загрузчика, то можете скачать уже скомпилированные файлы отсюда, поместить их в каталог Arduino_dir\hardware\arduino\avr\bootloaders\optiboot\ и перейти к пункту Изменение частоты и источника тактирования Ардуино. А кому интересно могут скомпилировать их самостоятельно. О том как это сделать описано далее.
Что нужно знать о тактировании AVR микроконтроллеров
AVR микроконтроллеры способны работать с различными источниками тактового сигнала. Это может быть внешний резонатор, RC-цепочка (внутренняя или внешняя), а так же внешний сигнал синхронизации. Источник тактирования выбирается исходя из требований к устройству. Так для построения точных микроконтроллерных систем следует использовать внешние кварцевые или керамические резонаторы, так как они обладают высокой стабильностью и не чувствительны к изменениям температуры. В этом плане им уступают генераторы на основе времязадающей RC-цепочки: они менее стабильны и чувствительны к изменениям температуры и напряжения. С другой стороны внутренний RC-генератор присутствует практически во всех AVR микроконтроллерах и его использование будет наиболее простым и экономичным решением в системах, не предъявляющих высоких требований к стабильности тактового сигнала.
Настройка микроконтроллера на работу с тем или иным источником тактового сигнала осуществляется установкой конфигурационных битов (фьюзов) при помощи программатора. Применительно к нашей ситуации установка фьюзов происходит при выполнении команды "Записать загрузчик" из меню IDE Ардуино, значения фьюзов берутся из файла boards.txt. Он же отвечает за добавление новых пунктов в меню Инструменты. Поэтому доработка IDE Ардуино для добавления в нее меню выбора частоты начинается с редактирования файла boards.txt
Пробуждение по сторожевому таймеру
В основе сторожевого таймера (WatchDog Timer) лежит многоразрядный счетчик, снабженный собственным тактовым генератором. Если таймер включен, то значение счетчика будет постоянно увеличиваться и при его переполнении будет сгенерирован сигнал сброса МК. Чтобы избежать сброса по переполнению программа должна постоянно обнулять счетчик специальной командой. Если программа зависла и счетчик не был вовремя сброшен, то сигнал сброса выведет МК из зависшего состояния, таким образом повышается стабильность системы на основе МК.
Наличие собственного тактового генератора и способность работать когда другие узлы МК остановлены позволяют использовать сторожевой таймер для вывода МК из спящего режима. Для этого следует настроить его на генерацию прерывания, а не сигнала сброса. Также необходимо задать значение предделителя, чтобы получить интересующую задержку. Ниже приведен пример скетча, в котором Ардуино будет просыпаться каждые 2 секунды и мигать встроенным светодиодом для индикации пробуждения.
Здесь задается интервал сторожевого таймера и режим его работы для генерации прерываний через 2 секунды. После выполнения функции sleep_mode() Ардуино переходит в спящий режим. При генерации прерывания от сторожевого таймера и пробуждении МК, управление передается соответствующему обработчику (ISR (WDT_vect)). После его выполнения продолжится работа основной программы, т.е. выполнится следующая после sleep_mode() команда. Для задания значения предделителя сторожевого таймера можно использовать одну из следующих констант:
- WDTO_15MS
- WDTO_30MS
- WDTO_60MS
- WDTO_120MS
- WDTO_250MS
- WDTO_500MS
- WDTO_1S
- WDTO_2S
- WDTO_4S
- WDTO_8S
Пробуждение при нажатии кнопки
Пробуждение микроконтроллера при замыкании/размыкании контактов, будь то кнопка, геркон, энкодер и т.п. - это пробуждение по внешнему прерыванию (INT) или по прерыванию изменения уровня (PCINT). Для работы с первыми в IDE Arduino предусмотрены удобные функции. Для вторых ничего подобного в IDE нет, поэтому придется работать с регистрами микроконтроллера, отвечающими за настройку PCINT (хотя, наверняка, существуют библиотеки для работы с ними, я не искал). Для тех и других у меня есть подробные публикации с примерами использования: Прерывания в Ардуино. Часть 1, и Часть 2.
Скетч содержит достаточно комментариев, я поясню лишь назначение цикла while. Все электромеханические коммутирующие устройства подвержены дребезгу контактов. В нашем случае дребезг на входе запроса прерывания будет воспринят микроконтроллером как многократное нажатие кнопки, в результате чего он будет выходить из спящего режима, выполнять заданный код и уходить в сон несколько раз подряд. Чтобы этого не происходило мы откладываем уход в сон до момента отпускания кнопки и возвращения сигнала на входе D2 к высокому уровню. Если сигнал остается высоким в течение 5 выборок с интервалом в 1мс, то считаем, что он стабилизировался и можно снова переводить микроконтроллер в режим энергосбережения.
Если добавить в схему аппаратное подавление дребезга, то можно обойтись без описанного цикла.
Читайте также: