PythonでリアルタイムクロックモジュールPCF8563を制御しようとしています。モジュールを Raspberry Pi に接続したところ、モジュールからクロックを読み取ることができました。モジュールの内部アラーム機能を使用して、この機能を python から制御したいと考えています。
私が知っている Python ライブラリは 2 つあります。1つは here で、もう 1 つは hereです。
最初のものはうまく機能しますが、アラーム機能のサポートが不足しています. 2番目のものはほとんどの機能をカバーしていますが、私が知らない、使用したくないquick2wireライブラリに依存しています。私は実際に最初のものを改善したいと思います。
このモジュールに関連する適切な文書化されたハウツーも見つけましたが、残念ながらArduino用です。
私の現在の問題は、i2c バスを介してレジストリから取得したバイトから特定のビットを読み取って設定するにはどうすればよいかということです。と:
import smbus
bus = smbus.SMBus(0)
returndata = bus.read_byte_data(0x51, 0x01)
レジストリ 0x01 から 1 バイトを取得します。戻り値を bcd から 10 進数に変換する必要がありますが、このバイトの 3 番目のビットを取得するにはどうすればよいですか? そして、どうすればそれを変更できますか。
Arudinoのハウツーから引用:
... 0x01 のレジスタのビット 3 (「AF」アラーム フラグ ビット) をチェックします。1 の場合 – アラームの時間です。次に、そのビットをゼロに設定することで、アラームをオフにすることができます。ハードウェアを使用して、最初にレジスタ 0x01 のビット 1 を 1 に設定します。その後、アラームが発生するたびに、PCF8563 のピン 3 に電流が流れます。