2015-10-08 Thu
今回のプログラムの作成に使った回路?です。おきまりの基板+USBシリアル変換アダプター(○月)の構成
で、開発してます。
USBシリアル変換アダプターは、FT232RLという型番で、
完成品が、950円でした。
左端の小さな基板は、セラロックをつけたものです。はじめ、
空中配線で、使ってましたが、アースの端子が根元からおれ
てしまったので、基板につけました。
この開発に使ってる基板は、
「キットで遊ぼう電子回路シリーズNo9」
に付属のものですが、便利に使ってル反面、やはり、中途
半端な感じもします。使いやすいように、自作した方
がいいのでしょうが、ずっと使ってます。
2015-10-07 Wed
今日一日、正確にい言うと、昨夜から、もがいていました。その結果、やっと、割込を使った受信ができるようになりま
した。
今回はまったのは、諸兄のプログラムを移植していましたが、
16F88ではないPICのプログラムだったので、またもや入力
ピンの設定が違ってました。ここを直したら、すんなりでした。
また、割込の書式も違うのかなと思って旧の環境での記述と
新しい環境での、記述両方してみましたが、両方とも、通り
ました。
旧 RCIF = 1
新 PIR1bits.RCIF = 0
使えない表記だとすぐに、?マークがでるので、新しい環境
での開発は、楽です。
この割込のプログラムは、違う諸兄のプログラムを改変しました。
いろいろゴミが残ってますが、私の環境で、一応動いたもの
です。
2015-10-06 Tue
諸兄のプログラムをもとに、多少変更を加えて、PCのキーボードから、LEDのコントロールをするプログラムをつく
りました。
キーボードから、1~7の数字を押すことで、それに応じた
場所のLEDを点灯するプログラムです。
プログラムです。
ヘッダーファイルの「uart.h」と「uart.c」諸兄の作られたものを
そのまま使わせていただいています。
今回はポーリングのプログラムなので、次は、割込を使った
プログラムを作ってみようと思います。
2015-10-05 Mon
新しい環境で、諸兄の書いてくれたシリアル通信のプログラムを自分の環境で実現するべくもがいていました。
コンパイルはすんなり通るのに思った動作をしてくれません。
全部疑って、一つ一つつぶして、やっと思うような動作ができ
るようになりました。
まず、はまったのが、デバックのために、プログラムの間に
書き込んだ書式です。
int count=1000;
RA0=1;
RA1=0;
while(count>0){count--;}
count=1000;
RA0=0;
RA1=1;
while(count>0){count--;}
LEDが交互に点滅するはずですが、RA1に当てはまるLED
の変化がありません。
もしやと思い
PORTA=0b00000001;
PORTB=0b00000000;
・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・
PORTA=0b00000000;
PORTB=0b00000001;
のように変更したら動きました。「RA」の表記では、ポート
全体の値を書き換えてしまってるようでした。
よく見てみるとポートのビットの操作の記述が変更に変更に
なってました。
RA1→→PORTAbits.RA1
のように書かないとだめでした。
次にはまったのが、外部オシレーターの使用でした。
これは、デバックの方法の手落ちでした。外部オシレーター
でプログラムがうまく動いているのか確かめるのに、LEDの
点滅プログラムを挿入しましたが、ウエイトタイムが短くて
点灯しっぱなしで、うまく動いてないように見えてしまいま
した。何回、書き直したことか。
丸一日かかって、諸兄のプログラムの再現ができました。
PICのUART機能を使って、PCからのキー入力を
エコーバックするプログラムです。
それから、とんでもないミスをしてました。RXとTXのピンアサ
インを私の教科書(キットで遊ぼう電子回路シリーズNo9)で
確認しながらしてましたが、これが間違いでした。
教科書のPICは、16F627AというPICで、今回使ったのは、
16F88というPICでした。同じ18ピンのICなので、同じだろう
たたかをくっくってたのが間違いでした。なんと、
16F627
TX--8ピン(RB2)
RX--7ピン(RB1)
16F88
TX--11ピン(RB5)
RX-- 8ピン(RB2)
なんと、TXとRXが入れ替わってました。これでは、動きません
ね。やはり、データシートみないとだめなんですねえ。
2015-10-02 Fri
X IDEの開発環境で、いくつかプログラムを書いて見ました。驚いたのは、「あまりにも親切過ぎる」でした。
最近の一太郎やWORDのように、やろうとしていることを
先読みして、自動でやってくれます。
一太郎等では、冒頭に句読点がくると、行間をつめて、
句読点を行の終わりの位置にもってくるということを自動
でやってくれます。これと同じように、いろいろ、自動でや
ってくれます。ただ、この「親切」がくせ者で、時に、意図し
たことと違う結果になってしまいます。行頭の禁則処理を
自動でやると、行ごとの文字間隔がちがって、見栄えが
悪くなるので、この辺が、一番いやなところです。
この意味で、最近のワープロソフトは、嫌いでした。さすが
使わなくなりましたが、PCになってからも、OASYSという
ワープロソフトを使い続けたのも、この親切さがなかった
からです。
さて、X IDEですが、使ってみて、ことのほか便利なようです。
何よりも、作成途中で、シンタックスエラーがあると、その都度
知らせてくれます。
黄矢印の行に「;」がないシンタックスエラーがありますが、
次の行の緑矢印の所にきちんと、「びっくりマーク」が表示
され、エラーのあることを示してくれます。
「;」をつけてやると、ちょっとタイムラグがありますが、
びっくりマークは、すぐに消えます。
未定義の変数等についても同じように知らせてくれますの
ので、開発時間が短縮されるかもしれません。
2015-09-30 Wed
PICのプログラムを作るにあたって、初めて使った、
MPLAB IDE V8.8という古典的な環境を使い続けてきまし
た。
ただ、世の中がどんどん進んでいて、このv8.8は古い
アーカイブに残っているだけで、メジャーなDLのリストには、
ありませんでした。
また、新しいことを覚えるのはしんどいのですが、諸兄の
プログラム古い環境に移植しようと思いましたが、あっさり
断念しました。
新しい環境のMPLAB® X IDEをインストール。この環境で
コンパイルしたら、一発でOKでした。
新しい環境では、一番の難物のCONFIGの設定も半自動で
おこなえるようで、なれれば、こちらの方がいいかもしれま
せん。
2015-09-26 Sat
テスト基盤から、組み込み用の基盤に作り直し、組み込み前のテストです。
プログラムも多少変更しました。
○電源投入後、LEDを一つ約1.5秒点灯させ、スイッチ
の代わりにする。
○MPGを回すのを止めて、約1.5秒動かさないと、LED
を消灯させる。
の変更をしました。TIMER0の割込で、おおざっぱな時間を
計測しています。
ケースにLEDを埋め込む予定ですが、まだ、部品が届かな
いので、手持ちのLEDを基板につけてテストです。
TOP PAGE △