Согласен. Действительно, так можно делать блинк с любым периодом. Диапазон ограничен только разрядностью счетчика. В первый раз смутила ровная цифра 1024, что и подтолкнуло к мысли насчет сдвигов. Сейчас вижу, что тут это малость не то. Результат деления будет увеличиваться на единицу всякий раз, когда счетчик миллисов будет достигать значений кратных делителю. Ну а раз результат меняется на единичку, то младший бит всякий раз тоже меняет свое значение. Совсем простая арифметика, хотя идея, безусловно, интересная. Плохо, что деление является не самой легкой операцией для ардуины.
Нормальный blink, никаких delayев. Абсолютно пофиг для блинка 1 секунда или 1.024 сек, потому логичней делить не на 1000, а на 1024. Можно на 512, 256 и т.п. Ничего особенного, в общем.
Не-не-не. Так мы получим только степени двойки, т.е. периоды в 2.048с, 1.024с, 0.512с и все в таком роде. Раз уж началось деление на 1000, то все, теперь принимается только вариант мигания с любым периодом.
Нашел в интернете скетч для управления светодиодной лентой при помощи ШИМ. Автор рассказал, что глаз воспринимает моргание светодиода под управлением ШИМ совсем нелинейно, и предложил записывать значение value в analogWrite(pin, value) не подряд, а из предложенной им таблицы в массиве. Я скачнул скетч, чтобы посмотреть вживую, как это выглядит.....но
Ну я к тому, что не совпадает с оригинальным названием :-)
Клапауций 823 пишет:
запостил схему подключения, ссылку на пакет библиотеки, код примера - желают, что бы я им отвечал на английском.
не русофобия, а английский фашизм - разделили всех ползателей по языковому признаку и требуют в "Английской секции" английского языка.
На самом деле такое встречается на многих форумах. Видел и обратную ситуацию - на русскоязычном форуме отдельно раздел для иностранцев, пишущих на английском. Типа так удобнее, чтобы не смешивать темы на разных языках.
Я когда-то публиковал исходники на зарубежном сайте - комментарии в коде дублировал на русском и английском. Типа, чтобы всем удобней было (ну или для ленивых переводить). Как-то так...
Я когда-то публиковал исходники на зарубежном сайте - комментарии в коде дублировал на русском и английском. Типа, чтобы всем удобней было (ну или для ленивых переводить). Как-то так...
а, обратно пробовал переводить? - я пробовал. ересь получается - лучше, вообще, без комментариев.
Мигаем светодиодом без delay()Логично. Десятый бит счетчика миллисекунд переключается, как раз с периодом 1с.
Десятый бит
Нет не младший. Деленеие на 1024 соответствует сдвигу вправо на десять разрядов. Десятый бит получается.
Нет не младший. Деленеие на 1024 соответствует сдвигу вправо на десять разрядов. Десятый бит получается.
ок. деление миллис на 1024 возможно чему-то в этой реальности и соответсвует, но никак не соответвует блинку с периодом в 1 секунду.
блинк раз в секунду:
*на сколько разрядов тут что сдвигается вправо?
Согласен. Действительно, так можно делать блинк с любым периодом. Диапазон ограничен только разрядностью счетчика. В первый раз смутила ровная цифра 1024, что и подтолкнуло к мысли насчет сдвигов. Сейчас вижу, что тут это малость не то. Результат деления будет увеличиваться на единицу всякий раз, когда счетчик миллисов будет достигать значений кратных делителю. Ну а раз результат меняется на единичку, то младший бит всякий раз тоже меняет свое значение. Совсем простая арифметика, хотя идея, безусловно, интересная. Плохо, что деление является не самой легкой операцией для ардуины.
Нормальный blink, никаких delayев. Абсолютно пофиг для блинка 1 секунда или 1.024 сек, потому логичней делить не на 1000, а на 1024. Можно на 512, 256 и т.п. Ничего особенного, в общем.
В первый раз смутила ровная цифра 1024
логичней делить не на 1000, а на 1024. Можно на 512, 256 и т.п.
конкурс невнятных ответов на вопрос: "почему же лучше 1024 или 512, 256... ?" продлён до правильного ответа.
Плохо, что деление является не самой легкой операцией для ардуины.
¯\_(ツ)_/¯
Если тебе непонятно, чем 1024 отличается от 1000, то я тут ничем не помогу. Правильный ответ уже давно написан. Ок, подождем ТВОЙ правильный ответ.
Если тебе непонятно, чем 1024 отличается от 1000, то я тут ничем не помогу. Правильный ответ уже давно написан. Ок, подождем ТВОЙ правильный ответ.
если не можешь, кто тебя, вообще, за язык тянул писать невнятные комменты в этой теме.
Вау .. кузявый код, годный. Моргалка с частотой 1.024сек .. так? :)
Кстати, если заменить millis() на timer_ovf_count (кажется так) то будет ещё "кузявее", нет? :)
Вау .. кузявый код, годный. Моргалка с частотой 1.024сек .. так? :)
с частотой - от 1 до 1/2 максимального значения счётчика.
Кстати, если заменить millis() на timer_ovf_count (кажется так) то будет ещё "кузявее", нет? :)
ну, нарой в недрах дуино разных счётчиков и мигай ими, если миллис не устраивает.
Если тебе непонятно, чем 1024 отличается от 1000, то я тут ничем не помогу. Правильный ответ уже давно написан. Ок, подождем ТВОЙ правильный ответ.
если не можешь, кто тебя, вообще, за язык тянул писать невнятные комменты в этой теме.
А тебя?
¯\_(ツ)_/¯
[/quote]
Не-не-не. Так мы получим только степени двойки, т.е. периоды в 2.048с, 1.024с, 0.512с и все в таком роде. Раз уж началось деление на 1000, то все, теперь принимается только вариант мигания с любым периодом.
Ну не любые .. но все натуральные дроби в разумном пределе поддерживаются .. :)
Значит полупериод 1 секунда будет uint16_t mul = 1024 / 1000;
uint16_t это же целочисленное вроде.
Лучше возьму себе на вооружение пример Клапауцийя, с делением и без округления.
Не-не-не. Так мы получим только степени двойки, т.е. периоды в 2.048с, 1.024с, 0.512с и все в таком роде.
ну, в болиде формулы-1 скоростя так переключаются. :D
*желаешь плавного комфорта - юзай первый пример.
продолжаем конкурс #8
продолжаем конкурс #8
Приз какой?
1$
Ты победил, забирай
Америкосы аплодируют стоя новому названию своей столицы.
Хайль Трамп!
дожились Arduino Web Editor
*купил попкорн, пиво и биту в ожидании стада леммингов у которых в веб-редакторе что-то не так происходит.
Загадка
Нашел в интернете скетч для управления светодиодной лентой при помощи ШИМ. Автор рассказал, что глаз воспринимает моргание светодиода под управлением ШИМ совсем нелинейно, и предложил записывать значение value в analogWrite(pin, value) не подряд, а из предложенной им таблицы в массиве. Я скачнул скетч, чтобы посмотреть вживую, как это выглядит.....но
скетч не работает!
Вроде все правильно написано, но не работает! А если вместо PIN1 и PIN2 в строчках где про analogWrite написать 5 и 6, то все прекрасно работает.
Спецы! Подскажите в чем дело?
В последних релизах ИДЕ в arduino.h реализованы собственные определения для PIN.. скорее всего глючит с ними.
В последних релизах ИДЕ в arduino.h реализованы собственные определения для PIN.. скорее всего глючит с ними.
Заставил себя проверить скетч на Nano v3, работает. IDE 1.6.12
Вот же русофобы... Английский им подавай... ишь чо захотели!
P.S. Не канонично, надо было назвать TITANIUM BICYCLE.
с названием всё в порядке.
Ну я к тому, что не совпадает с оригинальным названием :-)
запостил схему подключения, ссылку на пакет библиотеки, код примера - желают, что бы я им отвечал на английском.
не русофобия, а английский фашизм - разделили всех ползателей по языковому признаку и требуют в "Английской секции" английского языка.
На самом деле такое встречается на многих форумах. Видел и обратную ситуацию - на русскоязычном форуме отдельно раздел для иностранцев, пишущих на английском. Типа так удобнее, чтобы не смешивать темы на разных языках.
Я когда-то публиковал исходники на зарубежном сайте - комментарии в коде дублировал на русском и английском. Типа, чтобы всем удобней было (ну или для ленивых переводить). Как-то так...
Я когда-то публиковал исходники на зарубежном сайте - комментарии в коде дублировал на русском и английском. Типа, чтобы всем удобней было (ну или для ленивых переводить). Как-то так...
а, обратно пробовал переводить? - я пробовал. ересь получается - лучше, вообще, без комментариев.