MPGをステッピングモーターに直接つないでコントロール
するアダプターを作成するにあたって、LEDを使った表示を
ルーレット風にしましたが、同じようなもので、製品版が
あるんですね。
また、○ジナルマインドさんにも、A相B相をCW・CCWの信号
に変換するIC(16F84A)が販売されているようです。
ドライバーの入力がCW・CCW(DIR)しかないもののアダプター
にするようです。
私と同じ目的にも使えそうです。
全部ソフトでコントロールしてるんですね。
ソースリストでも見てみたい気がしますが、きっと、
アセンブラーでしょうね。
---値段の不思議---
PICのプログラムをPICに書き込むのに、ADWINのPICライター
を使ってました。
16F88等の古いものを使ってるぶんにはいいのですが、
開発環境を新しいものに変更したついでに、16F1ファミリーの
新しいPICも使ってみようと思いました。
ところが、このADWINのPICライターは、新しいPICには対応
してないようで、書き込みができないので、新しいライター
を買うことにしました。
何にしようか迷いましたが、諸先輩がお使いになっている
定番のPICKIT3を購入することにしました。
ネットと値段を調べてみるとびっくり。だいたい同じ値段でしたが、
○mazonでは、10倍の値段のものが売られています。
多分、○月のと同じものだと思いますが、びっくりです。
それとも別物なのでしょうか。○mazonのものは、
パッケージに、「XYGstudy」の表記が見られますが、
○月のものにはありません。
同じものだとすると、この値段の違いは、
なんでしょうか。
---新しい開発環境(7)---
新しい環境で、あれこれやっています。TMR0(タイマー0)
を使ったプログラムを作って検証していますが、いくつか
思うように動かないことがありました。
使ってるPICは、16F88というOLDなものですが、新しいの
を使うには、細かいところで、分からないところがあるので
未だに使ってます。
さて、内部クロックを使ってる時は、動いたように思いますが
20Mhzのセラロックを外部につけて動作させると、どうも、
プリスケラ-が使えないようで、値をかえても動作に変化
がありません。
また、TMR0の停止が思うようにできませんでした。
いろいろNETであさって見ると、諸兄のHPで、
<TIMER0>
TIMERのON/OFF制御が出来ない。
外部クロック入力同期(Sync2Cycles)がONに固定
されている。
の記事を見つけました。
16F88のTMR0については、「ON、OFFができない」という
ことで一つは解決しましたが、プリスケラ-が反映されないの
が分かりませんでした。
諸兄の回路図を見ると、水晶発振子を使って、RA7に入れ
ているようで、CONFIGの設定も、EXTCLKになっています。
私のセラロックは、RA6とRA7に入れて、CONFIGは、HSに
しています。こんな風にすれば、入力が1本ですみますね、
また、一つ勉強です。
まだ、まだ、奥は深いです。
CLOCKを外部入力にすると、TMR0は、固定されてしまう
のでしょうかね。
<追記>
どうやらプログラムの勘違いをしていたようです。
一部変更したら、動きました。
---24時間対応のお店---
○天のパソコン工房というお店から、VGAの変換アダプタを
購入しました。
届いた物を確認してみると、どうも、製品名とパッケージの
中身が違うようです。
写真右側のものと思って注文しましたが、違う物が届いた
ようです。
同梱されていたチラシには、24時間36日受付と書いてあ
るので早速電話をしました。
すると、丁寧な対応をしてくれて、確認のために、写真を送って
くれとのことでした。
すぐに写真を送りました。
連休のため対応がすぐとれないとのことでしたが、24時間
365日対応というのが気に入りました。
私のなかでは、優秀の部類に入る、お店だと思います。
通常は、お店の名前は一部伏せてますが、今回は、宣伝
をします。
ただどうでしょうか。この後の対応が、
気になるところです。
---DNSの不具合---
インターネットの接続で、NTTからOCNに変更したら、特定の
サイトに接続ができなくなりました。
OCNのサイト等で調べて、DNSの設定は、「自動で取得」
でいいとのことだったので、その設定にしてました。
大きな不具合はなかったのですが、
http://ktsite.ddo.jp/PIC/
のサイトに接続ができませんでした。携帯では、できたので、
多分、DNSの不具合だろうと思いました。
ネットで検索すると、googleのDNSを使うといい、との記事
をみかけましたので、
優先 8.8.8.8
代替 8.8.4.4
にルーターのDNS(ドメインネームサーバー)の設定を変更
しました。やっと見えるようになりました。このサイトには、
16F88の情報がまとめられているので、重宝しています。
リングバッファーを使って、割り込みによる送信の
プログラム組みたくて、16F88のUSART割り込みについ
ていろいろ調べています。受信のプログラムは散見しますが、
送信のプログラムについては、AVR等のプログラムを
をよく見かけます。16F88の例題?があるとい
のですが。
---新しい開発環境(6)---
---新しい開発環境(5)---
今日一日、正確にい言うと、昨夜から、もがいていました。
その結果、やっと、割込を使った受信ができるようになりま
した。
今回はまったのは、諸兄のプログラムを移植していましたが、
16F88ではないPICのプログラムだったので、またもや入力
ピンの設定が違ってました。ここを直したら、すんなりでした。
また、割込の書式も違うのかなと思って旧の環境での記述と
新しい環境での、記述両方してみましたが、両方とも、通り
ました。
旧 RCIF = 1
新 PIR1bits.RCIF = 0
使えない表記だとすぐに、?マークがでるので、新しい環境
での開発は、楽です。
この割込のプログラムは、違う諸兄のプログラムを改変しました。
いろいろゴミが残ってますが、私の環境で、一応動いたもの
です。
---新しい開発環境(4)---
諸兄のプログラムをもとに、多少変更を加えて、PCの
キーボードから、LEDのコントロールをするプログラムをつく
りました。
キーボードから、1~7の数字を押すことで、それに応じた
場所のLEDを点灯するプログラムです。
プログラムです。
ヘッダーファイルの「uart.h」と「uart.c」諸兄の作られたものを
そのまま使わせていただいています。
今回はポーリングのプログラムなので、次は、割込を使った
プログラムを作ってみようと思います。
---新しい開発環境(3)---
新しい環境で、諸兄の書いてくれたシリアル通信のプログ
ラムを自分の環境で実現するべくもがいていました。
コンパイルはすんなり通るのに思った動作をしてくれません。
全部疑って、一つ一つつぶして、やっと思うような動作ができ
るようになりました。
まず、はまったのが、デバックのために、プログラムの間に
書き込んだ書式です。
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が入れ替わってました。これでは、動きません
ね。やはり、データシートみないとだめなんですねえ。
---宅急便の迷子---
○月に頼んだ部品が、今日届く予定だったが、今日は、
なしのつぶてでした。
荷物の追跡をしてみると、なんと、隣の隣の県のセンター
の方に届いて、そこからまた、東京の羽田のセンターにも
どされたようです。
どおりで届かない訳です。仕分けのミスか、住所の間違い
なのか、迷子になったようです。
今日、作る予定だったものがまた、先延ばしになりました。
明日は、また、草刈りで、明後日は、ボランティアのお仕事
で、作業は中断です。