Pull to refresh

Comments 8

Попытаюсь описать процесс как можно детальнее. Для того, чтобы подать на динамик звук нужной тональности и длительности, необходимо переключать состояние пина с частотой заданной ноты и делать это на протяжении времени длительности заданной ноты. У меня этот процесс происходит в основном цикле и выполняется параллельно остальным задачам. Для этого я считаю длительность текущей ноты и ее частоту (константы здесь зависят от задержки в конце главного цикла и были подобраны вручную):

Извините, а почему вы не стали использовать аппаратный ШИМ? Это было бы гораздо проще.

Если верить даташиту, их у вашей тини аж 4 штуки.
www.atmel.com/images/doc2543.pdf
О наличии ШИМ знаю но никогда им не пользовался по неопытности. Ваш комментарий заставил серьезно задуматься, возможно я переделаю эту часть на ШИМ ведь звук мелодии получился, мягко говоря, не очень.
Аппаратный шим это очень хорошее освобождение ресурсов.
Смысл в том, что когда надо дергать ногой с определёной частотой, вы вынуждены заботится о том, чтобы к нужному времени процессор был свободен.
Шим же дёргает ногой сам, вы ему лишь задаёте параметры, как дёргать, и ваше внимание нужно только для изменения режима работы.

Спасибо, про это я уже почитал. Сначала подумал, что на переделки не хватит памяти, ведь сейчас прошивка занимает 2016 байт, любое изменение просто не поместится, но судя по необходимому коду, вариант на PWM должен освободить не только память но и размер программы.
Мой комментарий относится к статье косвенно, статья интересная и вообще DIY это классно!
НО:
У меня при виде Jenkins и подобных утилит возникает только один вопрос: Это как так на «мастер» можно закоммитить/пушить некомпилируемый код?
Я по работе с таким сталкивался, в основном, в смежных с моим проектом, и каждый раз это выливается в своеобразный ад. У нас есть специальный человек именуемый по шапке раздаватель CM инжернер, который, помимо своих прямых обязаностей по настройке общего окружения для сборки, следит чтобы инженеры, как минимум, не отправляли на мастер/релиз бранч некомпилируемый код. В целом, это какое-то халатное отношение — сабмитить, то что даже скомпилировать нельзя. Может стоит задуматься ЧЯДНТ, если такое происходит, и исправиться? Если не вышло с N+1 попытки, задуматься, а нужен ли такой инженер в команде, который даже компилируемый код написать/заинтегрировать не в состоянии?
Критика весьма субъективная, но имеет место быть.
Во-первых, билд валится не только по ошибке компиляции, а еще и вследствие невыполненных тестов, предупреждений от Style Cop (если включена опция «Считать предупреждения ошибками»).

Во-вторых, когда работаешь с распределенным проектом, в котором несколько модулей делаются разными командами, да еще есть ядро / фреймворк от еще одной команды, то репозиторий кода имеет очень непростой жизненный цикл. Разных стадий бранчи, например. Бывает так, что твой последний код по какой-то причине ссылается на то, что не положено в транк фреймворка или на твоей локальной машине состояние репозитория отличается от оного на машине сборки. Такие ошибки могут случиться и твой локальный билд не свалится, а на сервере свалится.
У нас в проекте таже ситуация, много подсистем начиная от компилятора, коначая UI и мое сообщение скорее навеяно печаным опытом нежели какими-то здравыми ± самого Jenkins или OBS например. У нас был товарищ, который ломал корневые зависимости для 3 других подсистем по 5 раз на дню. Jenkins красиво показывал красную табличку, для нас означавшую, только одно — делать fetch/merge нельзя. В итоге после недели повторений человеку нашли другое занятие. И красная табличка в Jenkins больше не появлялась. Потому что остальные инженеры выполняют сборку с имеющимися подсистемами в т.ч. unit-тесты до отправки изменений на ревью. Я уже не говорю про сабмит на релизный бранч.
Все просто, наш проект компилируется в облаке, а мерж и коммит в SVN не всегда происходит без ошибок. Бывает, когда создаются новые классы вылетает из головы добавить их в package.xml, вот билды и падают. Бывает и по другой причине, например, разница в версиях метадаты. Да и светофор — это just for fun.
Sign up to leave a comment.

Articles