0

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 に電流が流れます。

4

1 に答える 1

1

簡単な答えは、ビットマスクの使い方とビットシフトの仕組みを学ぶことでした。ドイツのウィキペディアのサイトはとても役に立ちました。PCF8563 のデータシートを確認したところ、欠けていた機能のいくつかを実装することができました。さらなる進行状況については、私の GitHub リポジトリ を参照してください

Arduino 関連の How-To でおそらくエラーを見つけました。著者に気付きました。リンクされた記事の下のコメントを参照してください。

于 2014-12-21T20:58:41.110 に答える