INT 21h

Домашняя страница самого страшного прерывания

Часы для моего друга на attiny2313 и ds1307

№ 4487 В разделах: Программирование Электроника от September 5th, 2012,

Схема этого чудо девайса обалденно простая. К микроконтроллеру по I2C подключается часовая микросхема DS1307. Почему контроллер, если можно было обойтись генератором, счетчиком и декодером в индикаторы? А потому, что синхронизироваться часы будут по Bluetooth :) Программа синхронизации мультиплатформенна и написана на Lazarus.

В выбраном мной микроконтроллере ATTiny2313 используется не аппаратный TWI (I2C), а полуфабрикат USI, с которым я задолбался разбираться и просто использовал готовую софтовую библиотеку. I2C используется для передачи информации от часовой микросхемы DS1307 в микроконтроллер, где полученная информация преобразуется в приятный вид и выведется на индикатор с помощью динамической развертки и сдвигового регистра 74HC595. При подключении DS1307 не забудьте подключить и вывод SQW к INT1 микроконтроллера, а также подтянуть его резистором на 10 кОм к Vcc. Дело в том, что DS1307 настроена программой на “тикание” выводом SQW с частотой 1 Гц, который подключен к ноге внешнего прерывания микроконтроллера. Это избавляет микроконтроллер от ежесекундного опроса часовой микросхемы, тупо увеличивая значение счетчика с каждым вызовом этого прерывания. Также на вывод DS1307 для батарейки (нога 3) можно повесить батарейку, которая будет помогать удерживать в микросхеме часов время пока основное питание не работает. Не стоит забывать об установке 4 транзисторов КТ315Б, иначе вы перегрузите ваш микроконтроллер.

Теперь по поводу настройки. У этих часов нет кнопок управления, зато из Китая заказан охуенный bluetooth модуль, который будет подключен к UART микроконтроллера для настройки часов. Если у вас нет модуля, но очень хочется настроить, то перед опросом часов есть закомментированые строки с настройкой. Устанавливаете там время (сейчас в коде 30 секунд, 58 минут и 3 часа утра) и прошиваете. Как только часы включились в указанное вами время эти строки снова комментируете и еще раз прошиваете чтобы этот код не настроил часы при следующем включении. Теперь время будет зависеть от качества установленного вами кварца и жизни батарейки :)

Синхронизатор написан на Lazarus с подключеной библиотекой synaser. Вставляете в компьютер Bluetooth адаптер, делаете сопряжение с модулем в часах, указываете полученый последовательный порт в строке ввода и нажимаете единственную кнопку. Исходник программы также лежит в репозитории.

Вы могли заметить нестыковку на видео с минутами. Из-за ошибки в коде передавался параметр в системе счисления с основанием 16, а не 10.

Нет комментариев »

Оставьте ваш комментарий »

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть более благие цели, вы просто ответьте на мой вопрос,...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно сделать? Допустим я купил данную рацию себе, мне...
  • 21h: слушать никто не запрещает. нет закона, который запрещает слушать. те, кто говорит иначе нагло врут. а если...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng uv-5r, допустим на объект, ну или вообще...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете можно скачать инструкцию к вашей модели рации,...
  • Серегй: Добрый день! Хотелось бы задать пару вопросов по поводу раций, у Вас есть куда можно обратиться ТАТ.
  • 21h: потому, что нейросетью проще. яркость светофора меняется в зависимости от времени суток от маленькой красной...
  • Михаил: А зачем нейросеть? Почему цвет светофора определить без нейросетей?