O
otuzsubat
Guest
私PCF8583で平日のアラームを使用するようにします。例えば、私は
、 それ
は毎週 月曜日、 13:30で
、 割り込みを生成します。私のコードを以下の通りです。私は間違いだと言うことができる
か ?
INTはint2bcd ( INTは12月) (
リターン( ( dec/10 ) < < 4 ) ( 12月% 10 ) ;
)
ボイドrtc_set ( ) (
i2c_start ( ) ;
i2c_write ( 0xA2 ) ; / /デバイスアドレスを送る
i2c_write (
0x00 )
を 、 / /アドレスバイトを送信する
i2c_write ( 0x80を) ; / /停止RTCのカウント
/*************ここに実際の時間****************/
i2c_write (
0x00 )
を 、 / / 100秒
i2c_write (
0x00 )
を 、 / /秒
i2c_write ( RTCの[ 3 ]);//分BCD
( 形式)
i2c_write ( RTCの[ 2 ]);//時間BCD
( フォーマット、 24hour形式)
i2c_write ( RTCの[ 0 ]);//年/日BCD
( 形式)
i2c_write ( RTCの[ 1 ]);//平日/月BCD
( 形式)
i2c_write (
0x00 )
を 、 / /無効タイマ
書き込み/*************アラーム時間****************/
i2c_write ( 0xA0 ) ; / /アラームフラグ
は 、割り込み、タイマーのアラーム、平日アラーム
i2c_write (
0x00 )
を 、 / /秒
の アラーム100
i2c_write (
0x00 )
を 、 / /アラーム秒
i2c_write ( ( ));//アラームalarm.minute分
int2bcdi2c_write ( int2bcd ( alarm.hour ));//アラーム時間
i2c_write (
0x00 )
を 、 / /アラーム日
i2c_write ( (が0x01 < < ( alarm.day - 1 )));//アラーム平日
i2c_stop ( ) ;
delay_ms ( 5 ) ;
i2c_start ();//開始伝送
i2c_write (
0x00 )
を 、 / /デバイスアドレスを送る
i2c_write (
0x00 )
を 、 / /アドレスバイトを送信
i2c_write ( 0x04 ) ; / /スタートのRTC計数
i2c_stop ( ) ;
delay_ms ( 5 ) ;
)
、 それ
は毎週 月曜日、 13:30で
、 割り込みを生成します。私のコードを以下の通りです。私は間違いだと言うことができる
か ?
INTはint2bcd ( INTは12月) (
リターン( ( dec/10 ) < < 4 ) ( 12月% 10 ) ;
)
ボイドrtc_set ( ) (
i2c_start ( ) ;
i2c_write ( 0xA2 ) ; / /デバイスアドレスを送る
i2c_write (
0x00 )
を 、 / /アドレスバイトを送信する
i2c_write ( 0x80を) ; / /停止RTCのカウント
/*************ここに実際の時間****************/
i2c_write (
0x00 )
を 、 / / 100秒
i2c_write (
0x00 )
を 、 / /秒
i2c_write ( RTCの[ 3 ]);//分BCD
( 形式)
i2c_write ( RTCの[ 2 ]);//時間BCD
( フォーマット、 24hour形式)
i2c_write ( RTCの[ 0 ]);//年/日BCD
( 形式)
i2c_write ( RTCの[ 1 ]);//平日/月BCD
( 形式)
i2c_write (
0x00 )
を 、 / /無効タイマ
書き込み/*************アラーム時間****************/
i2c_write ( 0xA0 ) ; / /アラームフラグ
は 、割り込み、タイマーのアラーム、平日アラーム
i2c_write (
0x00 )
を 、 / /秒
の アラーム100
i2c_write (
0x00 )
を 、 / /アラーム秒
i2c_write ( ( ));//アラームalarm.minute分
int2bcdi2c_write ( int2bcd ( alarm.hour ));//アラーム時間
i2c_write (
0x00 )
を 、 / /アラーム日
i2c_write ( (が0x01 < < ( alarm.day - 1 )));//アラーム平日
i2c_stop ( ) ;
delay_ms ( 5 ) ;
i2c_start ();//開始伝送
i2c_write (
0x00 )
を 、 / /デバイスアドレスを送る
i2c_write (
0x00 )
を 、 / /アドレスバイトを送信
i2c_write ( 0x04 ) ; / /スタートのRTC計数
i2c_stop ( ) ;
delay_ms ( 5 ) ;
)