Сообщения

Сообщения за ноябрь, 2011

Работа с шиной 1-wire. Подключение термодатчика DS18B20 к AVR

Изображение
Обновлено 21.01.14. Исходники переписаны под AVR Studio 6 (с тулчейном) Сразу хочу сообщить, что в этой статье я не буду описывать принцип работы шины (описание временных слотов и т.д.). Статья будет типа "Быстрый старт". Конкретно: я выложу свою библиотеку для работы с 1-wire, опишу как ею пользоваться, как подключить устройства к шине, как производить поиск устройств, передавать данные и т.д. А так, как (вероятно) 70% радиолюбителей в первую очередь решит подключить к шине термодатчик DS18B20, я выложу библиотеку для работы с DS18B20, где надо тупо запустить преобразование, подождать пока идет преобразование и записать температуру в массив. Теория Итак, 1-wire(еще называют MicroLAN, dallas-wire) так назвали потому что для передачи данных в обе стороны используется только 1 провод. Среди самых популярных устройств, работающих на этой шине можно выделить термодатчик DS18B20 и электронный ключ  DS1990 (которым вы в подъезде двери открываете). У сети 1-wire есть одно ведущее

Замена стандартной функции _delay_ms()

Изображение
Если вы программируете микроконтроллеры, тогда, наверно, уже знаете предназначение функции _delay_ms() . Она делает задержку на указаное количество милисекунд.  С моей точки зрения, у нее есть 3 минуса: она не работает с отключенной оптимизацией, во время ее выполнения текущая функция ничего не делает, кроме тупления в одном месте и если часто возникают прерывания, то время задержки увеличивается. Именно по этому я уже давно не пользуюсь этой функцией, а задержки делаю с помощью таймера.