Прямой эфир

0
Задача 6: увеличить диапазон задержек программного таймера
… Для данных большей разрядности — заменить 240 на нужный диапазон и убрать приведение к uint8_t...
Не знаю почему, но для «сраных армов» в Keil, пришлось делать приведение к uint16_t, иначе периодически возникал длительный затуп в работе таймера (светодиодик не мигал).
  • avatar
  • Gnusmas
  • 13 августа 2018, 21:19
0
Хорошая статья. Спасибо
  • avatar
  • igorp
  • 12 августа 2018, 06:03
+1
Ненавижу видосы. Лучше бы статью написали.
0
+1
  • avatar
  • skelet
  • 06 августа 2018, 13:17
0
Спасибо.
  • avatar
  • Gnusmas
  • 05 августа 2018, 09:06
0
Если задержка задана переменной в миллисекундах, лучше её и использовать со вторичным счётчикам в миллисекундах, а не пересчитывать в тики…
0
Макрос вообще никакого кода не добавляет. Это константное выражение, компилятор заменит его на целое число.
0
Прошу прощения, в предыдущем посте я соврал. Закомментировал все 15 установок задержек в своей программе, поочередно раскоменчивал, компилил и смотрел результат. И в 1 месте я использовал макрос для передачи переменной. Одна эта строчка и давала +3 кб кода))))))))) Эмпирически подтвердил Ваше «Что делать НЕ надо». Там надо написать «НЕ НАДО !!!!!!!!!!!!!!!!111111111111» )))
А так, при использовании эти макросов для констант, я имел для каждого вызова от: «ни байта кода не добавилось» до "+32 байта" при установке задержки длительностью в 750 мс. + кое-где сжирает по 1-2 байта ОЗУ на вызов. В общем заметил, что чем меньше задержка, тем меньше кода добавляет макрос.
  • avatar
  • Gnusmas
  • 04 августа 2018, 23:18
0
Опечаточка получилась. Указывамый размер конечно относится к НЕХ-файлу, а не исходнику))
  • avatar
  • Gnusmas
  • 04 августа 2018, 19:56
0
Задача 7: избавиться от ручного пересчёта стандартных единиц времени в тики таймера
Что делать НЕ надо: Использовать эти макросы не для констант. Пересчёт в рантайме через флоаты будет убийственно неоптимален, особенно если компилить в avr-gcc без -lm.
+ совмещено с Задачей 8: расширить разрядность таймера для организации системного тика

До внедрения такого (как в задачах 7,8) варианта обработки програмного таймера, мой исходник (с кучей моих функций, не имеющих отношение к таймерной службе) занимал ~1,5кБ. Тоесть у меня был системный тик ровно 1 мс, я в таймерах всегда прописывал задержки в мс. После того как я это переделал, исходник стал занимать 4,6кБ. Свои функции я не трогал, использовал макросы ТОЛЬКО для констант. Такое увеличение это норма при таком подходе? Старый вариант: www.dropbox.com/sh/mv806gbz9ufbtc6/AADouVCpwlRWMT7PXrOTEBooa?dl=0 Вариант после переделки, как в задачах 7,8: www.dropbox.com/sh/s75nzd5z252od6l/AAD2leiC_talRRgo0kTkrsvRa?dl=0
  • avatar
  • Gnusmas
  • 04 августа 2018, 18:59
0
Здравствуйте.
Подскажите, пожалуйста, при использовании вариантов с диодами (подтяжка к 3.3 и диод в линии от 3.3 к 5) диоды должны быть быстровостанавливающимися или можно обычные?
И можно ли согласовывать 3.3 и 12в по способу с мосфетом (двунаправленный режим)?
  • avatar
  • Buzoff
  • 04 августа 2018, 15:43
0
Простенько и удобно.Я тоже сам себе собирал, у меня получилась громоздкая, но устойчивая
Хочу вот тоже похвастаться своей самодельной третьей рукой rustaste.ru/samodelnaya-tretya-ruka.html

С ув. Эдуард
  • avatar
  • rustaste
  • 03 августа 2018, 21:22
0
Счётчик и переполнение можно для системного тика использовать или ещё как-нибудь. CTC годится когда таймеров куры не клюют…
0
Задача 2: выполнять прерывание с заданным периодом
Что делать НЕ надо: Использовать CTC режим. Он похоронит второй канал и другие ресурсы таймера.
А если используется АТмега 8535,16,32 и Timer0, у которого всего 1 канал, то CTC режим режим удачное решение?
  • avatar
  • Gnusmas
  • 02 августа 2018, 22:13
0
Так понимаю ты сам из тех «танцоров» кто с альтиума перешел на кикад,
в надежде ну хоть там не будет глючить!
:)
  • avatar
  • birdie
  • 02 августа 2018, 09:18
0
VGA +++. Процессорозависимой части здесь нет, наверное эти алгоритмы могут быть не так эффективны на других архитектурах, но познавательной значимости это их не лишает. С точки зрения ассемблерщика один и тот же алгоритм реализации флагового автомата на разных архитектурах может значительно отличаться в деталях реализации.
Но с точки зрения языка С все они могут быть описаны в одних и тех же командах. Полезная статья.
  • avatar
  • anakost
  • 01 августа 2018, 22:55
0
В прицнипе, это вообще надо было в «алгоритмы» публиковать, из платформозависимого здесь только регистры таймера в примерах, сами идеи и рецепты отлично работают на любом МК, где есть таймер.
  • avatar
  • Vga
  • 01 августа 2018, 21:56
0
  • avatar
  • Vga
  • 01 августа 2018, 21:38
0
Интересная у вас логика, сэр, если ждёте про свои сраные армы в блоге «AVR»… Наверное, надо в следующий раз в арм писать.
Или имеется в виду, что всё должно быть про арм по умолчанию? Не дождётесь.
+2
контора, которая делает системы видеонаблюдения в вагонах метро СПб сидит на кикаде лет 8 и не жужжит.
Альтиум — это для хороших танцоров, у которых весь софт краденный, а счастья все равно нет, а проекты все равно глючат.
  • avatar
  • igorp
  • 01 августа 2018, 17:58