ロボットとか
ロボットとかのブログ
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
SH7125での、シリアル通信について。
SH7125での開発を進めるためにSCIを用いたシリアル通信は必要不可欠なのだけれども、その方法がなかなか見つからない。
前に書いたサイトのおかげで、文字の送受信、文字列の送信、文字の送信を工夫して変数の値の送信はできた。
とりあえずこれで必要なことはできるようになったけれども、使い勝手がよろしくない。
やっぱりSH7045やH8のPrintfっぽいのがほしいと要望を受けたもののどうやってやったらいいものか。
そこに天の声とばかりに「GCCのヘッダファイルとか見て見たら」とアドバイスをもらう。
さっそく見てみると、「sci1.c」やら「sci1_printf.c」やらビンゴそうなファイルが。
最初はまるっと移植しようとして、ポートだけ直して文字通りまるっと移植したんだけど動かない。
その時はそれで断念してしまったけど、よくよく考えてみたら「sci1_printf.c」には「rs_putc」や「rs_puts」などなど今できていることがそのまま使えそうなコードが。
実際に前のプログラムと組み合わせてみたら、一部の手直しで見事動作。
これでSH7125でもSH7045やH8と同じ使い勝手に。
既存のコードを参考にするのは非常に有用なものだね。
実際に作ったソースは、GoogleGroopのほうに「SH7125_sci1~」という名前であげてあります。
SH7125での開発を進めるためにSCIを用いたシリアル通信は必要不可欠なのだけれども、その方法がなかなか見つからない。
前に書いたサイトのおかげで、文字の送受信、文字列の送信、文字の送信を工夫して変数の値の送信はできた。
とりあえずこれで必要なことはできるようになったけれども、使い勝手がよろしくない。
やっぱりSH7045やH8のPrintfっぽいのがほしいと要望を受けたもののどうやってやったらいいものか。
そこに天の声とばかりに「GCCのヘッダファイルとか見て見たら」とアドバイスをもらう。
さっそく見てみると、「sci1.c」やら「sci1_printf.c」やらビンゴそうなファイルが。
最初はまるっと移植しようとして、ポートだけ直して文字通りまるっと移植したんだけど動かない。
その時はそれで断念してしまったけど、よくよく考えてみたら「sci1_printf.c」には「rs_putc」や「rs_puts」などなど今できていることがそのまま使えそうなコードが。
実際に前のプログラムと組み合わせてみたら、一部の手直しで見事動作。
これでSH7125でもSH7045やH8と同じ使い勝手に。
既存のコードを参考にするのは非常に有用なものだね。
実際に作ったソースは、GoogleGroopのほうに「SH7125_sci1~」という名前であげてあります。
PR
今日はSH7125を使うために変数の値を返すプログラムを書いた。
SH7125はもともと文字列しか返せないため、数字の変数を返すために10で割ったあまりを配列に、整数部をさらに10で割ったあまりを配列に格納してを繰り返して、最後にswitch文で値に対応した文字列をFor文で順々に表示。
変数名の表示は面倒だけど、
int evangelion=123;
Put_UART_s("evangelion:");
print_d(evangelion);
といった感じで表示することになり、これで、
「evangelion:123」
と表示される。
プログラム本文は右下の「プログラムはこちら」からどうぞ。
SH7125はもともと文字列しか返せないため、数字の変数を返すために10で割ったあまりを配列に、整数部をさらに10で割ったあまりを配列に格納してを繰り返して、最後にswitch文で値に対応した文字列をFor文で順々に表示。
変数名の表示は面倒だけど、
int evangelion=123;
Put_UART_s("evangelion:");
print_d(evangelion);
といった感じで表示することになり、これで、
「evangelion:123」
と表示される。
プログラム本文は右下の「プログラムはこちら」からどうぞ。
”SCIで変数の値を返す”のプログラムはこちら
2009年11月16日月曜日
今日はSCI通信を実用的に使うための実験。
ctype.hにあるisalpha関数で、数字と英字を切り分けて操作してみようと試みる。
結果、切り分けはできるものの入力したChar型の数字をInt型にうまく変換できず、入力値を計算等に使うことはできなかった。
う~ん、Bcpad上では計算にも使えるんだけど、マイコンではうまくいかないな。
でもアルファベットが送れれば操作はできるので、明日以降はマイコン側の値を何とかして送り返してみようと思う。
多分If文のオンパレードになるかもしれないけど、強引にでもやるかな。
この記事はhttp://nagatsuki-robot.blogspot.com/で、2009年11月16日月曜日に投稿されたものを再投稿したものです。
今日はSCI通信を実用的に使うための実験。
ctype.hにあるisalpha関数で、数字と英字を切り分けて操作してみようと試みる。
結果、切り分けはできるものの入力したChar型の数字をInt型にうまく変換できず、入力値を計算等に使うことはできなかった。
う~ん、Bcpad上では計算にも使えるんだけど、マイコンではうまくいかないな。
でもアルファベットが送れれば操作はできるので、明日以降はマイコン側の値を何とかして送り返してみようと思う。
多分If文のオンパレードになるかもしれないけど、強引にでもやるかな。
この記事はhttp://nagatsuki-robot.blogspot.com/で、2009年11月16日月曜日に投稿されたものを再投稿したものです。
・2009年11月10日火曜日
昨日のプログラムが実行できない問題に続けて、SCIで入力が返ってこない問題も解決できそう。
昨日まで実行できなかったのはそもそもHEWでプログラムを書き込んだつもりで書き込んでなかったから。
つまりは「対象ファイルのアップロード」じゃなくて「ダウンロード」を押していた。
うまくいかない時は初心に返ってマニュアル通りにやってみるというのを改めて認識。
SCI通信を使って、マイコンから文章を送ることに成功。
まあ、「(別室)SH-2(SH7125F/SH7144F)で遊ぼう 」のサンプル「5002030.c」を使っただけだけど。
でも、これをもとに使えるSCI通信のプログラムを頑張って作るぞ。
/*-----追記09.11.10-----*/
プログラム書き込み後にCOM○が開けない理由が判明。
どうやらFDTで書き込み後、デバイスとの接続を切断しないとTERA TERMなどのシリアル通信ソフトで接続ができないらしい。
Put_UART_c();をコメントアウトしたところ、入力がTeraTerm上に返ってこなかったことから、一応入力を返しているっぽい。
でも、入力に応じて動作を変えるとかはできない。
if文自体に問題はないはずだけどなぁ。
多分、型とかそこらへんの問題だろう。
この記事はhttp://nagatsuki-robot.blogspot.com/で、2009年11月10日火曜日に投稿されたものを再投稿したものです。
昨日のプログラムが実行できない問題に続けて、SCIで入力が返ってこない問題も解決できそう。
昨日まで実行できなかったのはそもそもHEWでプログラムを書き込んだつもりで書き込んでなかったから。
つまりは「対象ファイルのアップロード」じゃなくて「ダウンロード」を押していた。
うまくいかない時は初心に返ってマニュアル通りにやってみるというのを改めて認識。
SCI通信を使って、マイコンから文章を送ることに成功。
まあ、「(別室)SH-2(SH7125F/SH7144F)で遊ぼう 」のサンプル「5002030.c」を使っただけだけど。
でも、これをもとに使えるSCI通信のプログラムを頑張って作るぞ。
/*-----追記09.11.10-----*/
プログラム書き込み後にCOM○が開けない理由が判明。
どうやらFDTで書き込み後、デバイスとの接続を切断しないとTERA TERMなどのシリアル通信ソフトで接続ができないらしい。
Put_UART_c();をコメントアウトしたところ、入力がTeraTerm上に返ってこなかったことから、一応入力を返しているっぽい。
でも、入力に応じて動作を変えるとかはできない。
if文自体に問題はないはずだけどなぁ。
多分、型とかそこらへんの問題だろう。
この記事はhttp://nagatsuki-robot.blogspot.com/で、2009年11月10日火曜日に投稿されたものを再投稿したものです。
プロフィール
名前:H238/ながつき |
このブログについて: |
ロボットについての勉強などを中心に勝手に書いていきます.あくまで本人のメモなので期待しないように. ちなみにブログデザインは趣味. |
ブログ内検索
[活動101] [活動102] [活動103]
[SH2] [マイコン]
[電子回路]
[プログラム] [VS] [OpenCV]
[知能ロボ]
[プレゼン] [CAD]
カレンダー
カテゴリー
最新記事
最新CM
[11/13 SLT-A65]
[12/01 siawase]
[05/01 H238]
[05/01 H238]
[05/01 ねこう]
アーカイブ