Символические константы
10/01/2011 - 20:54
Pavel Bobkov
Дэн Сакс
Использование символов для представления постоянных числовых величин — это одна из основных рекомендаций, которую узнают большинство программистов в первую очередь. Например, вместо того чтобы писать:
char buffer[256];
...
fgets(buffer, 256, stdin);
лучше описать символ, скажем buffer_size, представляющий размерность буфера, и использовать его вместо литеральной константы.
char buffer[buffer_size];
...
fgets(buffer, buffer_size, stdin);
Си и Си++ предлагают несколько способов описания таких символов. Итак, давайте их рассмотрим.
Си библиотека для работы с 1-Wire устройствами
31/12/2010 - 16:03
Pavel Bobkov
Tagged under
Для работы с устройствами, поддерживающими 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.
Инструменты электронщика
21/12/2010 - 20:57
Pavel Bobkov
Tagged under
У каждого электронщика в арсенале должно быть несколько нормальных пинцетов, у меня, например, их пять. Пинцеты используются для удержания радиодеталей и проводов в процессе их монтажа, для формовки выводов радиодеталей (т.е. для придания им определенной формы) и для разных мелких операций – ну там, вытащить винтик, натянуть на контакт разъема кембрик, выдернуть волос (и такое случается).
Пинцеты бывают - прямые, изогнутые, толстые, тонкие, металлические, антистатические, дешевые и очень дорогие. Какие из них выбрать – дело вкуса. Главное не покупайте очень дешевые пинцеты из тонких пластинок. Они слабо держат радиодетали и иногда гнутся.
Часы на микроконтроллере AVR
13/12/2010 - 20:46
Pavel Bobkov
Tagged under
В качестве примера использования событийной системы на таблице я выбрал такой популярный девайс как часы на микроконтроллере. Чтобы пример был понятен как можно более широкому кругу людей функционал часов ограничивается отображением и установкой времени. Программа носит учебный характер и не претендует на оптимальность.
Библиотека для LCD с контроллерами ks0066 и hd44780
12/12/2010 - 19:37
Pavel Bobkov
Tagged under
Подправил библиотеку для LCD, теперь она поддерживает контроллеры ks0066 и hd44780. Фишка в чем. Библиотека для hd44780 может работать и с ks0066, а вот библиотека для ks0066 с контроллером hitachi уже не работает. У этих контроллеров есть некоторое отличие в инициализации при использовании 4-ех разрядной шины. Вообщем я добавил несколько строк кода и заключил их в директивы условной компиляции, чтобы можно было выбирать тип контроллера. Код для hitachi чуть "потолще", а если будет использоваться контроллер ks0066 зачем нам лишние 40 байт кода.