同じことをJavaScriptから行うこともできる。JavaScriptを用いるときには注意点がある。これらの例を示す上で、ひとつ重要なパラメータがある。それは、ビットタイミングだ。 RS232には固定されたデータ速度が存在する。例えば9,600bpsとか115,200bpsとかね。通信を行うとき、ビットを持続させて正確に送る必要がある。 AVRでは内部RCクロックは良くて10%(の誤差)であり、シリアル通信を行うには十分ではない。しかし、1%まで抑えるように調整することがどできる。共振器や水晶振動子を用いることでね。 では、今回の課題用のコードについて詳細をよく見ていこう。 これは、プロセッサから文字を送信するためのメッセージだ。これらのメッセージはビットタイミングを用いている。 次の事項を確認してほしい。 プロセッサを基板に配置する際に、クロック速度は恐らく適正な範囲にはないだろう。単にRC発振するだけだ。それをコンピュータに接続したとき、文字化けした文書が現れるだろう。これはビットタイミングを調整してやる必要があるということを意味している。 そして、それはオシロスコープを使えば簡単に確認できる。 以前の組み込みプログラミングの講義資料を見てみよう。オシロスコープを用いると、ビットはこのこうな波形として目視することができる。 そして、シリアル通信を行うためにはビットが正しい継続時間を保持しているかどうかを確認する必要があるんだ。 さもなくば、文字化けしたものを送信することになってしまうだろう。 そういう訳で、まさに最初に君たちがやるべき事は既知の文字をいくつか送り返すということだ。 こうやって、コミュニケーションが適切かどうかを確認するんだ。何か新しい機能を付け加える前にね。 文字化けしてしまったならば、そりゃ単に通信速度の問題だ。君たちはそれが正しいのかどうかを確認しなくちゃならない。 (つづく) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。
Lesson. 11 入力デバイス §4. ビットタイミング
ahedgehogchase