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