COUNTER



新BLOG
 
新BBS
MN-BBS
旧BBS
CALENDAR
S M T W T F S
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     
<<  2024 - 04  >>
 
LOGIN
現在モード: ゲストモード
USER ID:
PASS:
CATEGORIES
ARCHIVES
PROFILE
OTHERS
    処理時間 0.39109秒
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート
          
<<前の10件 | 1 | 2 | 3 | 4 | 5 | 6 | 次の10件>>

-ローコストLCDシリアル通信モニター(PIC16F1823)-
 諸兄のHPに載っていたローコストLCDシリアル通信モニター

 (PIC16F1823)を作成しました。

 

 USARTのボーレート設定がタクトスイッチでできるのが便利

 です。

 プログラム等は、全部、諸兄の作られた物を使わせていただき

 ました。

 もう一つPICをのせて、データー処理にとおもいましたが、

 今回は、やめました。

 諸兄のプログラムを見てみると、ボーレートの設定をEPROM

 に書き込んで、プログラムからリセットすることで、設定をかえ

 ているようでした。

 いままで、EPROMは使ったことないので、こんな使い方もで

 きるんだなと思いました。

 また、リセットするのに、

  asm("RESET")

 というインラインアセンブラーのコードを使ってるようです。

 それにしても、やはりすごいです。このような知識、どうやって

 獲得されたんでしょうね。Webはくしゅ

| mabo52 | 23:06 | comments (0) | trackback (0) | DIY::  -pic |
---新しいPIC---
 NETサーフィンをしていると「初めてのPIC」というHPが、

 目にとまりました。

 そこで紹介されている「16F1455(16F1459)」というPIC

 が目にとまりました。

 スペックを見ると、クロックが48Mhzに設定でき、

 2.3v~5.5vの幅広い電圧で動作できるとのありました。

 早速衝動買いをしてしまいました。

 ○月や○ルツ等では、取り扱いがなく、「○S」という初めて

 の会社での購入になりました。

 届いたパッケージは、会社独自のおしゃれなものです。

 

 中身は、HDD等の包装に使われている素材の袋にパッケージ

 されてました。

 

 開けてみると、PICは、静電気防止のスポンジ?ではなく、

 一つ一つプラスティックのケースに入っていました。

 

 感想としては、ICの取り扱いになれた?会社なのかなと

 おもいました。

 この「○S」という会社は、PICの検索をすると、必ずといって

 いいほど引っかかる会社でした。なんどか、HPは見て存在は

 知っていたのですが、どんな会社か分からず、利用していません

 でした。

 在庫のしなものばかりではなく、海外からも取り寄せ?で

 しなものを購入できるようです。Webはくしゅ

| mabo52 | 10:41 | comments (4) | trackback (0) | DIY::  -pic |
---新しい開発環境(8)---
 また、また、はまりました。二日ほど、あれこれ悩みました

 が結局、プログラムのミスでした。

 <はまったことその1>===============

    タイマー0とタイマー1の割り込みで、割り込みの関数

   部分で、初期値の設定を入れる部分が違ってました。

   switch文で、本来なら、switchを抜けてから再設定

   しなければならないのに、switchのなかに書いてました。

        void interrupt InterReceiver( void ){
            if(TMR1IF==1){
              if(ccw==0){
                  if(p_count<6){
                     p_count++;
                  }
                  switch(p_count){
                      case 1:cwOut=0;
                           ccwOut=0;
                           break;
                      case 2:cwOut=1;
                           ccwOut=0;
                           break;
                      case 3:cwOut=1;
                           ccwOut=1;
                           break;
                      case 4:cwOut=0;
                           ccwOut=1;
                           break;
                      case 5:cwOut=0;
                           ccwOut=0;
                           break;
                      case 6:cwOut=0;
                          ccwOut=0;
              TMR1L = tMr1_Low;//TMR1初期値
                TMR1H = tMr1_Hight;//

                            break;
         }

        }
        (本来の位置)
          TMR1IF=0;//割り込みフラグクリアー
    }


  TMR1L = tMr1_Low;//TMR1初期値
     TMR1H = tMr1_Hight;//


  の位置が問題でした。6回割り込みさせて、一連の動作が

  が終わるように組みましたが、初期値の設定を変えても

  割り込みの時間がほとんど変わりませんでした。

  なんのことはない、割り込みで、6回目に戻ってくる時に

  だけ初期値が設定されますので、1回だけは、期待した

  時間での割り込みがかかりますが、後の5回は、なんと

  設定の最大値、65536まで、カウントアップしてました。

  これでは、期待した動作になりません。

  期待した動作をさせるには、フラグのクリアーの前に入れ

  ないとだめでした。


  <はまったことその2>==============

   「main」のプログラムでは、必ず無限ループを作りますが、

   このなかの処理で、大きな勘違い。

   if文で判定をして、動作をさせましたが、if文に一回だけ

   入って処理をさせたかったのですが、一回動作をさせた

   後に、ifの条件を書き換えなかったので、動作を永遠に

   繰り返すことになって、終わりませんでした。

   終わりにさせたかったのがタイマー1の割り込みだった

   ので、タイマー1の割り込みのストップの方法をあれこ
   
   れさがしてしまいました。



  分かれば、なんのことはない、単純なミスでした。最新の

  開発環境にして、単なるシンタックスミスは、環境の方で

  指摘してくれるので、文法的な間違いは、ほとんど時間を

  賭けずに修正できるようになりましたが、アルゴリズム等

  のミスは、ダメです。修正に時間がかかります。

  頭が硬くなってます。Webはくしゅ

| mabo52 | 00:58 | comments (0) | trackback (0) | DIY::  -pic |
---値段の不思議---
 PICのプログラムをPICに書き込むのに、ADWINのPICライター

 を使ってました。

 16F88等の古いものを使ってるぶんにはいいのですが、

 開発環境を新しいものに変更したついでに、16F1ファミリーの

 新しいPICも使ってみようと思いました。

 ところが、このADWINのPICライターは、新しいPICには対応

 してないようで、書き込みができないので、新しいライター

 を買うことにしました。

 何にしようか迷いましたが、諸先輩がお使いになっている

 定番のPICKIT3を購入することにしました。

 ネットと値段を調べてみるとびっくり。だいたい同じ値段でしたが、

 ○mazonでは、10倍の値段のものが売られています。

 多分、○月のと同じものだと思いますが、びっくりです。

 それとも別物なのでしょうか。○mazonのものは、

 パッケージに、「XYGstudy」の表記が見られますが、

 ○月のものにはありません。

 同じものだとすると、この値段の違いは、

 なんでしょうか。Webはくしゅ

| mabo52 | 23:47 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(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は、固定されてしまう

 のでしょうかね。
まだ、まだ、奥は深いです。

 <追記>
   どうやらプログラムの勘違いをしていたようです。
   一部変更したら、動きました。
Webはくしゅ

| mabo52 | 14:10 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(6)---
 今回のプログラムの作成に使った回路?です。

 

 おきまりの基板+USBシリアル変換アダプター(○月)の構成

 で、開発してます。

 USBシリアル変換アダプターは、FT232RLという型番で、

 完成品が、950円でした。

 左端の小さな基板は、セラロックをつけたものです。はじめ、

 空中配線で、使ってましたが、アースの端子が根元からおれ

 てしまったので、基板につけました。

 この開発に使ってる基板は、

 「キットで遊ぼう電子回路シリーズNo9」

 に付属のものですが、便利に使ってル反面、やはり、中途

 半端な感じもします。使いやすいように、自作した方

 がいいのでしょうが、ずっと使ってます。Webはくしゅ

| mabo52 | 10:20 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(5)---
 今日一日、正確にい言うと、昨夜から、もがいていました。

 その結果、やっと、割込を使った受信ができるようになりま

 した。

 今回はまったのは、諸兄のプログラムを移植していましたが、

 16F88ではないPICのプログラムだったので、またもや入力

 ピンの設定が違ってました。ここを直したら、すんなりでした。

 また、割込の書式も違うのかなと思って旧の環境での記述と

 新しい環境での、記述両方してみましたが、両方とも、通り

 ました。

    旧 RCIF = 1
    新 PIR1bits.RCIF = 0

 使えない表記だとすぐに、?マークがでるので、新しい環境

 での開発は、楽です。

 この割込のプログラムは、違う諸兄のプログラムを改変しました。

 いろいろゴミが残ってますが、私の環境で、一応動いたもの

 です。Webはくしゅ

| mabo52 | 21:54 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(4)---
 諸兄のプログラムをもとに、多少変更を加えて、PCの

 キーボードから、LEDのコントロールをするプログラムをつく

 りました。

 キーボードから、1~7の数字を押すことで、それに応じた

 場所のLEDを点灯するプログラムです。

 プログラムです




 ヘッダーファイルの「uart.h」と「uart.c」諸兄の作られたものを

 そのまま使わせていただいています。

 今回はポーリングのプログラムなので、次は、割込を使った

 プログラムを作ってみようと思います。Webはくしゅ

| mabo52 | 22:20 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(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が入れ替わってました。これでは、動きません

 ね。やはり、データシートみないとだめなんですねえ。Webはくしゅ

| mabo52 | 22:32 | comments (0) | trackback (0) | DIY::  -pic |
---新しい開発環境(2)---
  X IDEの開発環境で、いくつかプログラムを書いて見ました。

  驚いたのは、「あまりにも親切過ぎる」でした。


  最近の一太郎やWORDのように、やろうとしていることを

  先読みして、自動でやってくれます。


  一太郎等では、冒頭に句読点がくると、行間をつめて、

  句読点を行の終わりの位置にもってくるということを自動

  でやってくれます。これと同じように、いろいろ、自動でや

  ってくれます。ただ、この「親切」がくせ者で、時に、意図し

  たことと違う結果になってしまいます。行頭の禁則処理を

  自動でやると、行ごとの文字間隔がちがって、見栄えが

  悪くなるので、この辺が、一番いやなところです。
 

  この意味で、最近のワープロソフトは、嫌いでした。さすが

  使わなくなりましたが、PCになってからも、OASYSという

  ワープロソフトを使い続けたのも、この親切さがなかった

  からです。


  さて、X IDEですが、使ってみて、ことのほか便利なようです。

  何よりも、作成途中で、シンタックスエラーがあると、その都度

  知らせてくれます。

  

  黄矢印の行に「;」がないシンタックスエラーがありますが、

  次の行の緑矢印の所にきちんと、「びっくりマーク」が表示

  され、エラーのあることを示してくれます。

  「;」をつけてやると、ちょっとタイムラグがありますが、

  びっくりマークは、すぐに消えます。

  未定義の変数等についても同じように知らせてくれますの

  ので、開発時間が短縮されるかもしれません。Webはくしゅ

| mabo52 | 10:38 | comments (0) | trackback (0) | DIY::  -pic |

こんな物欲しいな
CLOCK
NEW ENTRIES
COMMENTS
    ---SPINDLEのPWM制御 (その2) (7)
  • TR >06.18
    ---番外編---
  • TR >06.02
    ---SPINDLEのPWM制御 (その2) (5)
  • mabo >05.30
保留中コメント:10件
LINKS
    相互リンクさせていただいてます。
  • The Rider
Search Box
名言集
メール
   
連絡は下記から
名前:

メールアドレス:

件名:

メッセージ(必須):


TOP PAGE