2014-12-20 5 views
0

파이썬으로 실시간 클럭 모듈 PCF8563을 제어하려고합니다. 모듈을 내 Raspberry Pi에 연결했는데 모듈에서 시계를 읽을 수 있습니다. 모듈의 내부 알람 기능을 사용하고 Python에서이 기능을 제어하고 싶습니다.i2c를 통해 파이썬으로 실시간 클럭 모듈 PCF8563 제어 - smbus 이해

필자가 아는 두 개의 Python 라이브러리, one hereone here이 있습니다.

첫 번째 동작은 훌륭하지만 알람 기능에 대한 지원이 부족합니다. 두 번째 것은 대부분의 기능을 다루지 만, 모르고 사용하기 싫은 quick2wire 라이브러리에 의존합니다. 나는 실제로 첫번째 것을 개선하고 싶다.

이 모듈과 관련된 good documented how-to도 발견되었지만, 슬프게도 Arduino의 경우입니다.

현재 문제는 어떻게해야합니까? 은 특정 비트를 읽고 설정합니다.은 i2c 버스를 통해 레지스트리에서 가져온 바이트 수입니다. 다음을 포함 :

import smbus 

bus = smbus.SMBus(0) 
returndata = bus.read_byte_data(0x51, 0x01) 

레지스트리 0x01에서 1 바이트를 얻습니다. 리턴 값을 bcd에서 십진수로 변환해야하지만이 바이트의 세 번째 비트는 어떻게 얻을 수 있습니까? 어떻게 변경할 수 있습니까? 0x01로에서 레지스터의 비트 3 (이하 "AF"알람 플래그 비트)를 확인 ...

:

방법-에 Arudino에서 촬영. 1 인 경우 - 알람 시간입니다! 그런 다음 해당 비트를 0으로 설정하여 경보를 끌 수 있습니다. 하드웨어를 사용하여 먼저 레지스터 0x01의 비트 1을 1로 설정하면 알람이 발생할 때마다 PCF8563의 핀 3에 전류가 흐를 수 있습니다.

답변

1

짧은 대답이었다 다음 비트 마스크 방법 비트 이동 작품을 사용하는 방법을 학습. German Wikipedia site은 매우 도움이되었습니다. PCF8563의 데이터 시트를 확인한 후 누락 된 기능을 구현할 수있었습니다. 추가 진행을 위해 see my GitHub repository.

나는 아마도 Arduino related How-To에 오류가 있음을 발견했습니다. 나는 저자를 알아 냈고, 링크 된 기사 아래의 주석을 보았습니다.

관련 문제