Visits: 2832
Классика для часов реального времени.
Назначение выводов:
Функциональная схема:
Назначение регистров:
Функция чтения данных времени из M41T56
void readtime (void)// чтение даты и времени { // char a; // чтение даты и времени i2c_start (0xD0,0); // загрузка адреса устройства,функция запись i2c_write (0x00); // адрес ячейки памяти для обращения i2c_restart (0xD0,1); // загрузка адреса устройства,функция чтение rtcSecN=i2c_read_ack(); // чтение секунд rtcSecN=rtcSecN&0b01111111; // преобразование секунд rtcSecN=decbin_bin (rtcSecN); rtcMinN=i2c_read_ack(); // чтение минут rtcMinN=rtcMinN&0b01111111; // преобразование минут rtcMinN=decbin_bin (rtcMinN); rtcHourN=i2c_read_ack(); // чтение часов rtcHourN=rtcHourN&0b00111111; // преобразование часов rtcHourN=decbin_bin (rtcHourN); day=i2c_read_ack(); // чтение для недели day=day&0b00000111; // преобразование rtcMdayN=i2c_read_ack(); // чтение даты rtcMdayN=rtcMdayN&0b00111111; // преобразование даты rtcMdayN=decbin_bin (rtcMdayN); rtcMonN=i2c_read_ack(); // чтение месяца rtcMonN=rtcMonN&0b00011111; // преобразование месяца rtcMonN=decbin_bin (rtcMonN); rtcYearN=i2c_read_noack(); // чтение года rtcYearN=decbin_bin (rtcYearN); // преобразование года i2c_stop (); }//
Функция сохранения данных
void savetime (void) { i2c_start (0xD0,0); // установка адреса. i2c_write (0x00); // адрес ячейки памяти для обращения i2c_write (bin_decbin (rtcSecN)); // данные записи СЕКУНДЫ i2c_write (bin_decbin (rtcMinN)); // данные записи МИНУТЫ i2c_write (bin_decbin (rtcHourN)); // данные записи ЧАСЫ i2c_write (day); // данные записи ДЕНЬ НЕДЕЛИ i2c_write (bin_decbin (rtcMdayN)); // данные записи ДАТА i2c_write (bin_decbin (rtcMonN)); // данные записи МЕСЯЦ i2c_write (bin_decbin (rtcYearN)); // данные записи ГОД i2c_stop (); }//
Функции чтения и сохранения данных калибровочной константы
//калибровка часов +/- 31 void CalibrationSaveTime (char Calibration) { // Calibration=Calibration&0b00111111; Calibration=Calibration|0b11000000; i2c_start (0xD0,0); // установка адреса. i2c_write (0x07); // адрес ячейки памяти для обращения i2c_write (Calibration); // данные записи СЕКУНДЫ i2c_stop (); } //Чтение калибровки часов +/- 31 signed char CalibrationReadTime (void) { char Calibration; i2c_start (0xD0,0); // установка адреса. i2c_write (0x07); // адрес ячейки памяти для обращения i2c_restart (0xD0,1); // загрузка адреса устройства,функция чтение Calibration=i2c_read_noack(); // чтение Calibration if(!(Calibration&0b00100000))Calibration=Calibration&0b00111111; i2c_stop (); return Calibration; }
Функции преобразования двоично-десятичных чисел в двоичные и обратно
// преобразование двоично-десятичного в двоичное char decbin_bin (char data) { char a; a=data>>4; a=a*10; data=data&0b00001111; data+=a; return data; } // преобразование двоичного в двоично-десятичное char bin_decbin (char data) { char dest, edin; dest=data%100/10; edin=data%10; data=edin; data+=dest<<4; return data; }
Ссылка на страницу производителя ST
Это может быть интересно
- MPLAB® Harmony – или как это просто! Часть 1.Visits: 3530 Часть первая – Установка Гармонии. Музыкальная тема к статье, слушаем: В начале запуска нового проекта и выбора микроконтроллера стоит задача правильно его сконфигурировать, прежде чем перейти к реализации …
- Проект с использованием MCC часть 04Visits: 1092 Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое …
- ch-светомузыка и AK4113Visits: 1250 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
- Real-time music visualization technologyVisits: 78 Music visualization technology in real time (RTMV-technology). Я не музикант і я не маю спеціальної музичної освіти, я інженер розробник вбудованих систем. Але моє хобі розроблення технології візуалізації …
- PIC18F25K42 – v. A001 – выявленные баги.Visits: 578 Модуль I2C Не работает при использовании в стандартной конфигурации MCC. Требует особой нестандартной конфигурации и управления для нормальной работы. Обойти Обход проблемы возможен библиотека см статью. Модуль ADC2 На …
- WiFi ESP8266 – AT команды связанные с функцией Wi-FiVisits: 5205 AT команды связанные с функцией Wi-Fi Функции Wi-Fi подключения, запускаться из командной строки Команда Описание 1 AT+CWMODE Проверка, настройка режима работы Wi-Fi (sta/AP/sta+AP), (не рекомендуется для новых проектов). 2 …
- Мультизоновый индикатор-терморегулятор ch-c3010Visits: 1139 Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре, температуру на улице, а в погребе (или на балконе) …
- The art of DJVisits: 65 The art of DJ. The art of DJ has gained wide popularity. Today, a DJ is not just someone whose task is to mix tracks; a DJ is …
- Светодиоды со встроенным драйвером WS2812BVisits: 903 Производитель http://www.world-semi.com Краткое описание продукции фирмы Каталог продукции” catcatcat_ws_19 catcatcat_ws_15 catcatcat_ws_11 catcatcat_ws_07 catcatcat_ws_03 catcatcat_ws_18 catcatcat_ws_14 catcatcat_ws_10 catcatcat_ws_06 catcatcat_ws_02 catcatcat_ws_05 catcatcat_ws_09 catcatcat_ws_13 catcatcat_ws_17 catcatcat_ws_16 catcatcat_ws_12 catcatcat_ws_08 catcatcat_ws_04 catcatcat_ws_01 This jQuery …
- Moving average – скользящее среднееVisits: 2183 Скользящая средняя, скользящее среднее (англ. moving average, MA) — общее название для семейства функций, значения которых в каждой точке определения равны среднему значению исходной функции за предыдущий период. Скользящие средние обычно используются с данными временных рядов для сглаживания …