![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ANo.2 の補足について
内蔵の I2C インターフェイスを使うなら,初期化(レジスタの設定)が必要です。
ポートを直接操作しても出来なくはないですが,面倒なだけです。
rtc_write から rtc_write を呼んだりしていますが,大丈夫なのでしょうか?
読んできたデータはどこかに保存されているのでしょうか?
↓前掲のアプリケーションノートのソースコードです。
http://japan.renesas.com/support/downloads/downl …
参考にしてください。
No.2
- 回答日時:
基本的には,I2C デバイス上のアドレスを指定して,
そこのデータを読み書きします。
I2C の概要は↓が分かりやすいでしょうか。
http://wiki.livedoor.jp/yamamaya_com/d/I2C%A5%D0 …
どこのアドレスに何があるかは,RTC のデータシートやマニュアルを参照してください。
http://www.epsontoyocom.co.jp/product/RTC/set03/ …
マイコン側は,内蔵の I2C バスインターフェイスを使うことになると思います。
アプリケーションノートが出ているので,参考にしてください。
http://documentation.renesas.com/jpn/products/mp …
この回答への補足
ここに書いてある内容をもとにプログラムを組んでみました。
/**************************ここからRTC***********************************/
//STARTコンディション
void start(void)
{
P1.DR.BIT.B6 = 1;//SDA=1
P1.DR.BIT.B7 = 1;//SCL=1
if(P1.DR.BIT.B7 = 1)
{
P1.DR.BIT.B6 = 0;//SDA=1
}
}
//STOPコンディション
void stop(void)
{
P1.DR.BIT.B7 = 1;//SCL=1
P1.DR.BIT.B6 = 0;//SDA=0
if(P1.DR.BIT.B7 = 1)
{
P1.DR.BIT.B6 = 1;//SDA=1
}
}
//データビットはSCLが1レベルの間に確定される。
//RTCからLCDへ書き込むアドレスとデータ
void rtc_write(unsigned char address , unsigned char data)
{
//Write用アドレス0xA2
P1.DR.BIT.B7=0xA2;
rtc_write(0x02 , 0x01);//秒
rtc_write(0x03 , 0x01);//分
rtc_write(0x04 , 0x01);//時
rtc_write(0x05 , 0x17);//日
rtc_write(0x06 , 0x03);//曜日
rtc_write(0x07 , 0x01);//月
rtc_write(0x08 , 0x7DB);//年
}
//RTCの読み込むアドレスとデータ
void rtc_read(unsigned char address)
{
//Read用アドレス0xA3
P1.DR.BIT.B7=0xA3;
rtc_read(0x02);
rtc_read(0x03);
rtc_read(0x04);
rtc_read(0x05);
rtc_read(0x06);
rtc_read(0x07);
rtc_read(0x08);
}
//I/Oポートの初期化
void port_init()
{
PH.DDR=0xff;//PHを出力に設定LCD
P1.DDR=0x00;//P1を入力に設定スイッチ、RTC
}
//LCDに表示
void main(void)
{
void start();
void rtc_read();
void rtc_write();
initLCD();
cur_pos(0,0);
print_lcd(rtc_read);
while(1)
{}
}
RTCに関するところだけですけど・・・
これだと、LCRにわけのわからない文字が表示されちゃいます><
これは、表示する形が違うためなんでしょうか?
LCDに表示するプログラムの部分は、print_lcd();の中身です。
読み込んだ値をそのまま入れただけなんですけど・・・
何か、アドバイスをください。。。
No.1
- 回答日時:
RTC そのものというより,RTC にアクセスするための I/F,
例えば IIC とか SPI とかの使い方がわからない,ということなのでしょうか?
RTC の型式や I/F の種類,具体的にどこが分からないのかを,補足したほうが良いと思います。
この回答への補足
RTCの型番は、RTC-8564NBを使っています。
今は、I2Cを使ってマイコンに接続しています。
が、I2Cの使い方がよくわかりません><
SCLとSDAを接続して、プログラムのほうでどうやったら
この2線から時間が取得できるのでしょうか?
ちぐはぐな質問ですみません。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- C言語・C++・C# 画像の画素値を変えるC言語のプログラムで指定された画像の中に白い三角形を右上に表示させるにはどのよう 3 2022/10/30 01:16
- その他(プログラミング・Web制作) MicroPythonコード 1 2023/07/05 15:20
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- 体温計・血圧計 導電性ゴムとLCDの接続 2 2023/08/02 19:05
- その他(プログラミング・Web制作) プログラムが書けません。 6 2023/01/22 22:58
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
レジスタマップって何ですか?
-
PLCとPCの通信
-
H8マイコンのプロテクト方法
-
組み込みマイコンでのソフトウ...
-
このレジの並び方は間違ってま...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
-
VBAの配列サイズとメモリに関して
-
バックグラウンドのプロセスの...
-
メッセージボックスのボタン名変更
-
C言語で、メモリを解放しないで...
-
C# シリアル通信でデータ受信...
-
UDP通信におけるbind関数について
-
DoEvents関数って何?
-
explorer.exeが異様にメモリを食う
-
VBSの処理中一旦処理を止めて再...
-
機械語ダンプリストについて。
-
アセンブラ言語の数字を数値に...
-
vba listviewにおけるtextのAli...
-
同じLAN内パソコンのIPアドレス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PLCとPCの通信
-
組み込みマイコンでのソフトウ...
-
レジスタマップって何ですか?
-
PICマイコンのCLRWDT動作について
-
シリアル通信でのデータ取りこぼし
-
マイコンからSDカード内のテキ...
-
機械語のレジスタペアについて
-
H8S2368マイコンのTCSR_1レジス...
-
マイクロ秒で精度が出るタイマー
-
SH7144でパルス幅を測定したい。
-
フラッシュメモリへの書き込み
-
RTCで取得した値をLCDに表示したい
-
システムコールを使わずに画面...
-
グラフィックLCD SG12...
-
2つのアナログ信号が一致して...
-
カーブフィットを行うプログラ...
-
TCNTとTIFRの意味
-
printf文で変数のアドレスを表...
-
printfで0x600000番地の次の0x6...
-
PICマイコンでプログラム!パソ...
おすすめ情報