Дэн Сакс
 
   Использование символов для представления постоянных числовых величин — это одна  из основных рекомендаций, которую узнают большинство программистов в первую очередь.  Например, вместо того чтобы писать:
 
char buffer[256];
...
fgets(buffer, 256, stdin);
 
лучше описать символ, скажем buffer_size, представляющий размерность буфера, и использовать его вместо литеральной константы. 
 
char buffer[buffer_size];
...
fgets(buffer, buffer_size, stdin);
 
   Си и Си++ предлагают несколько способов описания таких символов. Итак, давайте их рассмотрим. 
   Для работы с устройствами, поддерживающими 1-Wire протокол уже давным-давно написаны библиотеки. Поэтому нет смысла изобретать велосипед (лично я это уже делал, когда программировал  на ассемблере) и писать что-то свое. На сайте фирмы ATMEL есть замечательный application note AVR318: Dallas 1-Wire, в котором рассмотрены два варианта реализации 1-Wire протокола на микроконтроллерах AVR – программная и аппаратная. Программная реализация позволяет использовать однопроводный протокол на любых микроконтроллерах. Аппаратная – только на тех, на которых есть модуль UART. Аппаратной поддержки 1-Wire протокола «в чистом виде» микроконтроллеры AVR не имеют, однако, используя модуль UART неким хитрым образом, эту поддержку можно организовать. К application note идет проект. Я взял из этого проекта исходные файлы библиотеки, добавил, изменил несколько функций и написал файл compilers.h, чтобы можно было использовать эту либу с любым из трех компиляторов – IAR AVR, GNU GCC (WINAVR), CodeVision.
Tagged under
 
  У каждого электронщика в арсенале должно быть несколько нормальных пинцетов, у меня, например, их пять. Пинцеты используются для удержания радиодеталей и проводов в процессе их монтажа, для формовки выводов радиодеталей (т.е. для придания им определенной формы) и для разных мелких операций – ну там, вытащить винтик, натянуть на контакт разъема кембрик, выдернуть волос (и такое случается). 
   Пинцеты бывают - прямые, изогнутые, толстые, тонкие, металлические, антистатические, дешевые и очень дорогие. Какие из них выбрать – дело вкуса. Главное не покупайте очень дешевые пинцеты из тонких пластинок. Они слабо держат радиодетали и иногда гнутся.
   
 
 
 
   В качестве примера использования событийной системы на таблице я выбрал такой популярный девайс как часы на микроконтроллере. Чтобы пример был понятен как можно более широкому кругу людей функционал часов ограничивается отображением и установкой времени. Программа носит учебный характер и не претендует на оптимальность. 
 

   Подправил библиотеку для LCD, теперь она поддерживает контроллеры ks0066 и hd44780. Фишка в чем. Библиотека для hd44780 может работать и с ks0066, а вот библиотека для ks0066 с контроллером hitachi уже не работает.  У этих контроллеров есть некоторое отличие в инициализации при использовании 4-ех разрядной шины. Вообщем я добавил несколько строк кода и заключил их в директивы условной компиляции, чтобы можно было выбирать тип контроллера. Код для hitachi чуть "потолще", а если будет использоваться контроллер ks0066 зачем нам лишние 40 байт кода. 

Страница 24 из 37