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
Это может быть интересно
- JDY-62A Audio bluetooth moduleVisits: 1614 Простой модуль для простого аудио блютуса. Встроенные подсказки на английском языке. Модуль включён, режим муте – после подачи питания. Контроль разряда батареи предупреждение что батарея разряжена и необходима …
- Цифровой тахометр для автомобиля CH-С3300Visits: 1870 Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика …
- Универсальный терморегулятор ch-c3000Visits: 2948 Терморегулятор ch-c3000 предназначен для управления системами регулирования температуры в пределах от – (минус) 55 до + 125 С. Регулятор может использоваться как в системах отопления, так и в …
- Мультизоновый индикатор-терморегулятор ch-c3010Visits: 1139 Часто возникает необходимость получить информацию по температуре с множества точек контроля. Вам необходимо знать температуру в комнате, в коридоре, температуру на улице, а в погребе (или на балконе) …
- Контроллер управления светодиодным освещением с дистанционным управлениемVisits: 1979 Все активнее светодиоды входят в нашу жизнь. Всё эффективнее становится светодиодное освещение. Всё ниже опускаются цены. Всё больше появляется возможностей получения сочных цветов, простоты в управлении. Всё чаще …
- УКВ – радиоприем, часть 2Visits: 6168 Пришло свободное время решил вторую часть проекта реализовать (правда есть мысль и третью с использование цветного OLED и функцией ch-светомузыки, но это только задумка… Для понимания функций интегрального …
- Altium Designer – подготовка документации для производства и сборки печатных платVisits: 3597 В процессе освоения Altium Designer много возникает вопросов по подготовке документации для производства плат, а также для её сборки. Altium Designer позволяет сделать все требуемые документы, хотя скажем …
- ch-светомузыка и AK4113Visits: 1250 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
- CAN – Controller Area NetworkVisits: 1053 Controller Area Network (CAN) первоначально был создан немецким поставщиком автомобильных систем Робертом Бош в середины 1980-х для автомобильной промышленности как метод для обеспечения возможности надежной последовательной связи. Целью было сделать автомобили более надежными, …
- Ultrasonic Level Meters – ULM –53LVisits: 697 Измерение расстояния при помощи ультра звукового датчика ULM–53L–10. Диапазон измерения от 0,5 м до 10 м, полностью пластмассовый излучатель PVDF, механическое соединение фланцем из полиэтилена HDPE (исполнение “N”) Характеристики …