суббота, 2 февраля 2013 г.

инициализация данных в eeprom atmega8 eemem =

Для полного понимания всего написанного ниже желательно хотя бы вкратце просмотреть статьи:

Шина 1-Wire привлекательна, в первую очередь, тем, что использует только одну линию связи. Разберем 1-Wire немного подробней. Для работы по этому интерфейсу должно быть одно ведущее устройство и  одно или несколько ведомых. У каждого 1-Wire устройства есть 64-битный уникальный код. Используя который, ведущий определяет с каким из устройств на линии он будет работать. Но узнать этот код это отдельный разговор и в этой статье будем считать, что у нас всего одно устройство подключено к шине. Конечно же, можно поискать готовые библиотеки и их подключить, но для того чтобы раз и навсегда уяснить как работает 1-Wire нужно написать какую-нибудь программку для работы с устройством по этой шине. В этой статье выбрал температурный датчик DS18B20. Это было обусловленно еще и тем, чтобы в случае неудачи можно было найти в интернете любую информацию о нем.Итак, чтобы работать с любым устройством нам нужно инициализировать его, послать ему команду и принять какие-то данные. Разберем как это можно сделать на шине 1-Wire:

В предыдущих статьях мы научились измерять атмосферное  давление и температуру.  Давайте не будем останавливаться на достигнутом, и изготовим электронный барометрический высотомер. Вообще высота бывает разная. Для летательных объектов это может быть: высота от поверхности земли под объектом, так называемая истинная высота, высота от какого-то условного уровня - относительная высота, от уровня моря - абсолютная высота и от уровня который соответствует стандартному атмосферному давлению 760мм.рт.ст.Барометрический метод основан на изменении давления с высотой. Для определения давления на высоте существует барометрическая формула:

Недавно нашел у себя в архивах программу спидометра на микроконтроллере. Года два назад ваял ее. И вот решил без особого разбора подробностей выставить ее. Если кто захочет думаю разберется без труда (тем более есть комментарии, а описал раньше), а если нет - отвечу на вопросы:). Программа написана на CodeVisionAVR. Пересматривая ее недавно, обнаружил некоторые вещи, которые хочу изменить, поэтому буду ее переделывать и писать теперь уже в WinAVR. Да, еще, в железе данное устройство пока не испытывалось, поэтому в случае чего могут обнаружиться какие-то глюки (см. обновление внизу). Если кто, испробует это устройство в железе, просьба написать о результатах. Экран спидометра у меня выглядит вот так

Что же такое прерывание? Прерывание это событие, при котором происходит приостановка основной программы и переход на выполнение подпрограммы прерывания. Чтобы узнать какие же есть прерывания в МК, откроем даташит микроконтроллера и нажмем на вкладку Interrupts и там в самом начале увидим таблицу векторов прерываний. Для МК mega8 она выглядит вот так.

Новинки электронных устройств. Готовые устройства на микроконтроллерах

Комментариев нет:

Отправить комментарий