Майкл Барр

   Недавно я наткнулся на пост в блоге одного разработчика, в котором он представил десять Си правил для лучшего программирования встраиваемых систем. На половину из этих правил у меня возникла жестко негативная реакция и я хочу описать, что мне так не понравилось. Далее по тексту я буду называть этого автора "Плохой Советчик". Я надеюсь, что если вы следовали пяти описанным ниже правилам, то мои комментарии убедят вас отойти от них. Если вы не согласны, начинайте конструктивное обсуждение в комментариях. 

   В устройствах на микроконтроллерах иногда требуется генерировать аналоговый сигнал. В зависимости от частоты аналогового сигнала, требуемого разрешения и типа используемого микроконтроллера, выполнить это можно несколькими способами. А именно: с помощью широтно-импульсной модуляции, используя функционал аппаратных таймеров или программную реализацию, с помощью встроенного цифроаналогового преобразователя (ЦАП`а), с помощью внешних схем цифроаналоговых преобразователей на дискретных элементах или с помощью внешних микросхем цифроаналоговых преобразователей. 

Найэл Мерфи

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

   Много лет назад у нас был компилятор, который регулярно выдавал сообщения о синтаксических ошибках на неверных строках исходного кода. Это не было такой уж серьёзной неприятностью, поскольку поиск в обратном направлении от того места, где компилятор сообщал об ошибке, всегда позволял определить строку, где ошибка была допущена на самом деле. В некоторых случаях ошибка определялась на нужной строке; иногда погрешность составляла 10 строк или больше. По мере написания проекта и увеличения размера файлов, проблема, казалось, прогрессировала. 

   В этом материале мы рассмотрим возможные проблемы при работе с EEPROM. Часть из них связана с аппаратным стороной микроконтроллера, такие как повреждение EEPROM при пониженном напряжении питания и ограниченный ресурс EEPROM, а часть с программным обеспечением, например, при использовании EEPROM в прерываниях. Также рассмотрим способы решения этих проблем и методы повышения надежности хранения данных в EEPROM. 


  Во многих цифровых устройствах для преобразования аналоговых сигналов используется АЦП. Часто аналоговые сигналы содержат нежелательный высокочастотный шум. 
   Чтобы "очистить" сигнал от этих шумов применяются аналоговые RC фильтры низких частот, которые устанавливаются после источника сигнала. Такой подход не всегда идеален и практичен.
   В качестве альтернативы, можно "очистить" зашумленный сигнал с помощью цифрового эквивалента аналогового RC фильтра нижних частот. По сути, программа этого цифрового фильтра состоит всего из двух строчек на Си.

аналоговый RC фильтр низкой частоты