http://forum.getchip.net/

Библиотека DS1302
http://forum.getchip.net/viewtopic.php?f=18&t=590
Страница 1 из 1

Автор:  Igor60 [ 31 мар 2015, 19:20 ]
Заголовок сообщения:  Библиотека DS1302

Библиотека предназначена для работы с микросхемой часов реального времени DS1302. НЕ ПУТАТЬ С DS1307 !
DS1302 удобна для постановки отметок времени при контроле за изменяющимися процессами.
В тестовой программе используется просто как часы с выводом времени по запросу.
Тактовая частота микроконтроллера 8000000 Гц.
Схема для тестирования в файле Test_PCF8574.spl7.
Подпрогрфммы библиотеки:
ds1302_init - Инициализация битов портов для работы с МС DS1302
ds1302_STOP - остановка тактового генератора DS1302
ds1302_START - запуск тактового генератора DS1302
ds1302_Protection_ON - Запись бита защиты от записи в МС DS1302
ds1302_Protection_OFF - Снятие бита защиты от записи в МС DS1302
ds1302_wtite_clock_RAM (addr,byte) - запись в DS1302 фиксированного байта(byte) по адресу(addr) регистра или памяти МС
ds1302_wtite_chip_RAM (addr,reg) - запись в DS1302 содержимого регистра байта(reg) по адресу(addr) регистра или памяти DS1302
ds1302_read_clock_RAM (addr) - чтение по адресу(addr) содержимого регистра или памяти DS1302. Результат в регистре WL (r26)
ds1302_read_clock_burst - Чтение всех регистров часов (8 байт) в выделенный буфер в SRAM микроконтроллера
ds1302_write_clock_burst - запись всех регистров часов (8 байт) из выделенного буфера в SRAM микроконтроллера
ds1302_read_ram_burst - Чтение всех ячеек памяти DS1302 (31 байт) в выделенный буфер в SRAM микроконтроллера
ds1302_write_ram_burst - запись всех ячеек памяти DS1302 (31 байт) из выделенного буфера в SRAM микроконтроллера

Для работы с тестовой программой рекомендую программу RH_COM_tester, есть в архиве.
Чтение времени и даты t или T - из МС часов получим ЧЧ:МИН:СЕК ДД/МЕС/ГГ День недели.
Пакетное чтение ОЗУ DS1302 s или S - из МС DS1302 получим содержимое тестовой записи 31 байт (программа при запуске кое что туда запишет :) )
Установка года - y15Y15 (15 год)
Установка месяца - p01p01 (январь - 01... декабрь -12)
Установка календарного дня - d01d01 (диапазон - 01... 31)
Установка часа - h01h01 (диапазон - 00... 23)
Установка минут - m00m00 (диапазон - 00... 59)
Установка дня недели - w01w01 (01-воскр, 02-понед, 03-среда....07-суббота)

Вложения:
LIB_DS1302.ZIP [293.74 КБ]
Скачиваний: 2154

Автор:  GetChiper [ 31 мар 2015, 20:23 ]
Заголовок сообщения:  Re: Библиотека DS1302

Отлично! :OK:

Автор:  andreysol2407 [ 15 апр 2015, 16:29 ]
Заголовок сообщения:  Re: Библиотека DS1302

добрый час!
Спасибо за библиотеку, но для полноты понимания хотелось бы уточнить:
в программе в нескольких местах используется подпрограммы
Push Pop достаточно ли сохранять SREGr16 r17 или нужно еще что-то вставить

Автор:  Igor60 [ 15 апр 2015, 19:24 ]
Заголовок сообщения:  Re: Библиотека DS1302

Сохранение регистров зависит от того, что делает какая либо подпрограмма в случае ее вызова при работе основной программы.
"Круто сказал"... В данном случае надо учитывать встроеные в Алгоритм Билдер макросы и такую штуку как библиотека задержек Waiting, которая может использовать r16, r17, r18 и r19. Встроеные макросы, обычно обходятся r16, r17. Сохранение
SREG важнО при использовании Waiting. Так что ничего дополнительно сохранять не надо. Если будут использоваться прерывания, то там уж не надо забывать "правила поведения" :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/