Я пытаюсь управлять модулем часов реального времени PCF8563 с помощью python. Я подключил модуль к своему Raspberry Pi, и я могу считывать часы с модуля. Я хотел бы использовать внутреннюю функцию сигнализации модуля и управлять этой функцией с помощью python.
Я знаю две библиотеки Python: здесь и один здесь.
Первый отлично работает, но ему не хватает поддержки будильника. Второй покрывает большинство функций, но опирается на библиотеку quick2wire, которую я не знаю и не хочу использовать. Я действительно хотел бы улучшить первый.
Я также нашел хорошо задокументированный способ to относится к этому модулю, но, к сожалению, для Arduino.
Моя текущая проблема заключается в том, как я могу читать и устанавливать определенные биты из байтов, которые я получаю из реестров по шине i2c. С:
import smbus
bus = smbus.SMBus(0)
returndata = bus.read_byte_data(0x51, 0x01)
Я получаю один байт из реестра 0x01. Мне нужно преобразовать возвращаемое значение из bcd в десятичное, но как я могу получить третий бит этого байта? И как я могу это изменить.
Взято из руководства Arudino:
... проверьте бит 3 регистра по адресу 0x01 (бит флага тревоги «AF»). Если 1 - время будильника! Затем вы можете отключить будильник, установив этот бит в ноль. С помощью аппаратных средств сначала установите бит 1 регистра 0x01 в 1 — тогда всякий раз, когда возникает сигнал тревоги, ток может течь на контакт 3 платы PCF8563.