Таймеры и задержки: сборник рецептов

AVR
Увидел в статье DI HALT "Простой программный таймер для конечных автоматов" некий кусок кода и решил накатать статью…

bool MainTimerIsExpired(const uint32_t Timer)                      // ???
{                                                                  // ???
   if ((TimeMs - Timer) < (1UL << 31)) return (Timer <= TimeMs);   // ???
   return false;                                                   // ???
}                                                                  // ???

Сначала писал длинно, с приколами и разжевыванием, но мне не понравилось и в итоге убрал в черновики. Решил переоформить как краткий сборник рецептов.


Читать дальше

attiny817 twi manual

AVR

Как работать с TWI новых тинь?


К сожаленю, даташит на процессоры стеснительно умалчивает об этой мелочи. Немного описаны биты в регистрах, состояния интерфейса — и всё. Стартовые решения по этой теме тоже отсутствуют, в аппликешн нотах — гордо перемаркированные старые атмеловские аппноты, совершенно неподходящие к новой аппаратуре.
Наверное, в Микрочипе ждут, пока Горнист за них мануал напишет.

Читать дальше

Простенький PWM

В общем появилась потребность но финансирования нет.
Регулятор оборотов на маленькую сверлилку.
Идея выглядела вот так:

Основная идея таймер и силовой ключ. Никаких микроконтроллеров и максимальное упрощение конструкции из доступных материалов.


Читать дальше

Химическое лужение печатной платы в домашних условиях

Каждый радиолюбитель, гик, инженер периодически изготавливает печатные платы в домашних условиях для своих поделок, электронных устройств и прототипов. После травления печатной платы наверняка вставал вопрос о лужении дорожек, контактных площадок и полигонов. Лужение медных проводников в первую очередь необходимо для исключения окисления медного покрытия печатной платы, удобства припаивания радиоэлементов, усиления проводников и конечно же для эстетического вида.



Читать дальше
  • +5
  • 20 марта 2018, 10:38
  • Jman
  • 1

Машина времени для крошек.

AVR
При программировании микроконтроллеров часто требуется отслеживать временные промежутки. Даже банальное «помигать светодиодом» требует учета времени погашенного состояния и времени светимости.

В Си есть функция delay_ms(X), которая выполняет пустой цикл X ms, то есть по сути вешает проц на X*fcpu/1000 тактов, так как ничего иного в это время он делать не может.

Многие прогеры, намучившись с этой функцией (или ей подобными), переходят на использование прерываний и аппаратных таймеров, но тут другая засада — их всегда мало.

Каждый выкручивается как может, например навешивает на один таймер несколько функций, использует биты счетчика как флаги, впрягает в нарты сторожевую собаку… вариаций много, но всегда новый проект означает новые выеживания, поиски решения в ограниченном пространстве.

Пройдя все эти стадии, я наконец-то дорос до понимания, что «что-то тут не так». Нарисовалась необходимость диспетчеризации задач по таймеру.
Прочитав AVR. Учебный Курс. Архитектура Программ Часть 2 в очередной раз убедился, что изобрел велосипед… ну и пусть, это просто еще один вариант решения.


Читать дальше
  • +2
  • 24 января 2018, 13:02
  • iva
  • 1

Управление микроконтроллером по USB stm8s003f3p6

Можно поуправлять ШИМ I2C UART прочими некоторыми портами
Это просто заготовка, в итоге хотелось бы потом сделать картинку с процесором и галочки возле пинов, а так же режимы регистров.
Это типа стенд для обучения будет.


Порт С может быть использован только для чтения в виду особенностей программной USB реализации.
Прошивка для МК github.com/BBS215/STM8S-VUSB-KEYBOARD

Программы для компа
github.com/BBS215
debugtool командная строка
debugtoolGUI GUI

Восстановление стрелочного индикатора приборной панели

Восстановление стрелочного индикатора приборной панели

В использовании находится еще довольного много автомобилей, где в приборных панелях для индикации различных его параметров используются аналоговые стрелочные приборы. И к сожалению, выход их из строя не редкость.
Заменить их исправными, зачастую нет возможности, да и детали для ремонта давно не выпускаются.


Читать дальше

Составление "карты" клавиатурных матриц.

     Уверен, многие страдают синдромом Плюшкина в той или иной степени и хранят ЖК матрицы и тачскрины от планшетов и телефонов, а также прочие трудно применимые не по назначению запчасти. Среди этого хлама попадаются и клавиатурные матрицы от ноутбуков и нетбуков, не содержащие контроллеров. В принципе, применить их для своих прототипов и самоделок не сложно, однако очень проблематично найти схему такой матрицы, особенно если это китайский noname.
     В данной статье предлагаю ознакомиться с моим способом составления «карты» таких клавиатурных матриц.


Читать дальше

Понижающий преобразователь на UC3845

Принесли мне в ремонт понижающий преобразователь, я не удержался и снял схему.
Элегантное и недорогое решение.
Далеко от идеала, но для мощностей, чуть больших чем совсем маленькие, по-моему, очень подходит.
Понижающий преобразователь на UC3845


Читать дальше

Программа для преобразования изображений и шрифтов в код топик-ссылка

Хорошая программа для подготовки изображений к выводу на разные экранчики. Гибкое преобразование последовательностей битов, добавление масок, можно свои шаблоны написать, то есть не только Си использовать, сжатие опять же.