TOP > 製作日記 > 4月下旬

下の写真はクリックすると大きい写真が見れます。

今月分を全て見る場合はこちら⇒ CLICK

4月21日 金曜日  タイトル: ダウン  [もうダメっ!限界っ!]

限界っ!

 ボロボロになりながらも出勤。今、休む訳にはいかない。少しでも仕事を進める。昨日の鼻血はあの一回だけだったが、今日は一日中、鼻血と鼻水を相手に格闘。

 こんだけ鼻血が出ると、24のテロで使われた病原体に感染した感じだ・・・。やばげっ・・・・。

 傷つきながらも、家に帰りそのまま寝る。明日には治っていて欲しいところ。当然、ロボットはススマズ。
4月22日 土曜日  タイトル: 今日は出勤日  [まだまだぁー]

若干回復?

 昨日よりは、若干回復した感じ。鼻血は完全に出なくなったし、鼻水も治りかけのようだ。ここで高熱出すわけにもいきませんからねぇ。基本的に自分の場合、風邪を引くと熱はほとんどでないのだ。

 まぁ、それはそれとして、今日も仕事に響かぬように、帰ったら即寝た。土曜休みじゃなかったしね。
4月23日 日曜日  タイトル: モーションエディタをちょびっと  [ねみー]

一日中

 日曜日だと油断したのか、起きたのは11時30分であった。今日、出勤日じゃなくて良かった。まぁ、喉の痛みはなくなったので良い方向なのであるが、なんだかやたら眠い。

 昼食ったら、そのまま寝てしまい、起きたのが17時であった。一応、モーションエディタの修正や機能の追加とかやりたかったんですけどねぇ・・・。

 まぁ、そんな状態でも、ボタンなどのコントロールをドラッグ&ドロップするやり方はなんとかできるようになった。ただ、他のコントロールに近づくと、動かしていた対象がそこで止まる。

 それがなんとかなれば、Heart To Heartのようにスライドバーを好きな場所における・・・はず。この辺は完全にあってもなくても、どーでもいい機能の一つ・・・だと今は思っているが、使ってみたら案外いいものかもしれない。

 結局、その方法は解決しなかったので、そのまま就寝。
4月24日 月曜日  タイトル: 帰宅後就寝  [早くなおりたーい]

イベントドリブン方式

 まだ本調子じゃないですね。今週はこんな感じで過ぎるかも。さて、モーションエディタの方ですが、通信の特に受信がダメダメだったのですが、その改善方法が見つかったのでそれを搭載したいと思っています。

 今までVBでやってたのはイベントドリブン方式で、1文字(1Byte)受信するたびに専用の割り込み関数に飛んで、受信した文字を変数や配列に代入という作業をさせてました。

 ところが、通信速度が速いと、この作業が本来の回数行われず、取りこぼしてしまうみたいです。そもそも、このイベントの発生は、このイベントでの処理が終わらない限り、受信フラグを無視する仕組みのようで、以下のような手順のようです。

1Byte受信
 ↓
受信フラグ
 ↓
MSComm1_OnComm()へ飛ぶ
 ↓
処理中
 ↓
処理終了後、割り込み許可

 この処理中に1Byte受信しても無視されてしまいます。通信速度が速い状態、例えば115200bpsで通信していた場合、14Byte送ったのに、4Byte分の割り込みしか起こらなかったということもありうる訳です。

 ちょっと、今回のようなケースではイベントドリブン形式はつらいようです。

ポーリング方式

 さて、ポーリング方式ですがこちらは、バッファに溜まっている受信データの数を監視して指定の数を読み込んだ後(例えば14個受信した後)に処理を行います。送信されてくるデータ数が予め分かっている場合は、この方法で良いかと。

 今回使用している自作モーションエディタも、こちらからコマンドなどを送り、ACKなどが返ってくるのを見ている。割り込みで処理するうまい方法を思いつかないまま、かなり怪しい状態で使っていたのでしょっちゅう異常状態に陥る。

 ひとまず、こちらの方式に移行するので、詳細は追って報告ということで・・・。

コメントアウトしたのに・・・

 この日記、書きかけだったのでコメントアウトしていたのだが、FireFoxなどのブラウザでは普通に見えてしまったらしい。不覚。人形つかいさんの書き込みで気づく。

 ポーリング方式のところで書いたことでいいんですかね。ちょっと怪しいので、その部分は掲示板の方で聞いてみよう。
4月25日 火曜日  タイトル: 帰宅後就寝 その2  [まぁ、時間がないんで・・・]

今日も進捗なし

 会社を出たのが10時頃だったもので、本屋は当然しまっている・・・。うん、CQ出版のインターフェースはお預けなのだ。3号機にはSH2/7144を搭載しようと考えているが、情報によると。

3.3Vで駆動するらしい。
タイマが少ないとか?
SRAMが載ってそうだが載っていない。
KRS-4014とかは、信号線は5Vで通信を行わないといけないらしい。

 5Vはバッファとかでなんとかなりそうだし、I/Oが3.3Vであることを忘れなければ問題ないだろう。よくよく考えたら、CPLDとかも3.3Vだったはず。ん?ってことは、繋げということなのかな?かな?
 ふふふ・・・まぁ、いい。まずはこのSH2を使ってサーボを操ることにしよう。
4月26日 水曜日  タイトル: 帰宅後就寝 その3  []

インターフェース入手

 今日はインターフェースを買って終了。最近忙しくて・・・。こんな時期がしばらく続くのであろう。まぁ、それはそれとして、このSHは土日にでもいじってみようと思う。

 シリアル通信くらいなら、すぐできるもんね。KPIT製のコンパイラでなんとかしてみたい。
4月27日 木曜日  タイトル: 帰宅後就寝 その4  []

今日も進捗無し

 今日はインターフェースを買って終了。最近忙しくて・・・。こんな時期がしばらく続くのであろう。まぁ、それはそれとして、このSHは土日にでもいじってみようと思う。

 シリアル通信くらいなら、すぐできるもんね。KPIT製のコンパイラでなんとかしてみたい。雑誌で紹介している方法はできて当たり前だし。しかし、どうしても先へ進まないときは、やむ終えないか。
4月28日 金曜日  タイトル: 帰宅後就寝 その5  [特になし・・・]

今日も進捗無し 最近はこればっか

 ちょうど忙しい時期なので、帰って寝ての繰り返し。ゴールデンウィーク明けまでこんな状況が続きそうだ。まぁ、それはそれとして・・・。

 VBのプログラミングで、スライドバーのドラッグアンドドロップができるようになった。で、このとき問題であった別のスライドバーの上に行くと、動かしている対象が切り替わってしまうという問題も解決。

 答えはやはりGoogle先生が握っていた。

 で、次に出てきた問題が、早く動かすとドラッグ中の対象が付いてこなくなってしまうという問題。これさえ解決できればOKなのであるが・・・。まぁ、この辺はゴールデンウィークに任せるとしよう。
4月29日 土曜日  タイトル: SH2デビュー?  [H8以外のマイコンをいじろー]

いよいよ

 ついにSH2をいじる日が来た。今までやろうと思いつつも放ったらかしであったSH2であるが、結局いつもROBO-ONEに間に合わないという理由で先送りだった。

 今回は、物はできているしソフトの変更のみなので、余裕がある・・・たぶん。で、さっそく半田付けしてみた。これから実験する基板には何も載っていないが、まぁ起動実験なのでシリアル通信だけやってみようと思う。

 今までの付録基板がついてきた雑誌は大方買ってきたが、やらんかったからなぁ・・・。

 トランジスタ技術 H8/3697F Tiny
 トランジスタ技術 R8C Tiny
 デザインウェーブ CPLD
 デザインウェーブ FPGA

 こんなところか。結構あるでないの・・・。しかも、封印されたままだし・・・。今回は、半田付けまでした。既に矢は放たれてしまった。もう後戻りはできない。

 で、ささっとシリアル通信のプログラムを書き、焼いた。動いた。Aだけが永遠と表示されるプログラムであるが、問題なく動作。ここまでは当然の結果である。

 さてさて、KPITにもSH2のコンパイラは置いてある。バージョンはv601である。今回からCPUごとにファイルが自動で生成される。書き換えもほぼやらなくてよさそうである。

 さて、コンパイルの結果であるが・・・。問題なくコンパイルを終えられた。ここまでは予定通りである。あとは、焼いて動作確認するだけ。

 FDTを起動して、書き込もうとした・・・が、しかし!

out of memory

 書き込んだ後にエラーが出るわけでもなく、書き込もうとした瞬間にエラーが出てそれ以上書き込むことができない。何度やってもダメであった。

 原因は、motファイルのSフォーマットの違いにありそうだ。ルネサス製のコンパイラが出力するmotファイルはS1フォーマットなのに対し、KPIT製のコンパイラの出力するmotファイルはS3フォーマットになっている。

 どうもこのあたりに原因がありそうだ。
4月30日 日曜日  タイトル: KPIT製だとうまくいかないのは?  [原因調査中]

Sフォーマット

 Sフォーマットは、終わりに指定しているアドレスが16ビットまでならばS1フォーマット、24ビットまでならS2フォーマット、そして32ビットであればS3フォーマットとなる。

 つまり、ルネサス製のコンパイラは16ビットまでのアドレスしか指定していないためS1フォーマットであり、KPIT製は32ビットでアドレスをしていることになる。

 さて、32ビットのアドレスを指定しなければならない場所に何があるのか・・・。メモリマップを見たところ、それはRAM領域のようである。そのRAM領域に入っているものは、.data、.bss、gcc_excなどである。

 これらが何であるか、イマイチ分からないのであるが.dataは、広域変数が集められる場所で、.bssが初期化されていない広域変数が集められる場所であるらしい。

 おかしい・・・そんなもん使ってないぞ?どうやらGCC側で必要なものがこちらに入っているらしいのであるが・・・。この辺をどうにかしないと先に進めそうにない。

[BACK] [TOP] [NEXT]

Copyright (C) 2006 U-hirohito All rights reserved.

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送