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.46552秒
POWERED BY
POWERED BY
ぶろぐん
DESIGN BY
ブログンサポート
          
<<前の10件 | 1 | 2 | 3 | 4 | 5 | 6 | 次の10件>>

---PIC どつぼにまたはまりました。
 おもちゃを作るのに,またPICをいじってます。

 ただ,その過程で,またまた,どつぼにはまりました。

 どちらもLCDでの表示のプログラムなのですが・・・・・・・。


 一つは,何のことはないのですが,x軸,y軸,の表記を逆にしていま

 した。これでは,正しく表記できないですよね。

   lcd_setCursor(8, 0);

 とやるところを

  lcd_setCursor(0, 8);

 とやっていました。


 もう一つもLCDの表示なのですが,LCDの表示が,1桁の表示から

 4桁の表示になると,以後,一桁の表示にならなくなるというもので

 した。

 センサーがだめなのか,LCDの表示のプログラムがまずいのか

 あれこれなやみましたが,原因がやっとわかりました。

 G:45→G:4095

 となった後,2桁の表示にすると,

  G:3695

 のように表示され,前回表示の95の部分が残ってしまうという

 ことでした。

 左詰めにする簡単な関数を作って解決しました。

Webはくしゅ

| mabo52 | 14:39 | comments (0) | trackback (0) | DIY::  -pic |
---PIC 16F627A の内部クロック設定 PCONレジスタ
 また,あれこれやりくて,手元にあったLCD表示ができるように,

 組み立て,セットをしました。

 プログラム自体は,それほど難しいものではなく,諸兄の

 プログラム
を,XC8コンパイラーのV2.0に移植しました。

 ただ,使ったPICがこれまた手元にある16F627Aですので,

 2カ所ほどどつぼにはまりました。

 なんのことはない,当初,内部クロックの設定ができなかった

 のです。

 違うPICでつかっていた

    OSCCON

 を使っていたのです。16F627Aには,このレジスタはありません。

 OSCCONに当たるのが,

    PCON

 のレジスタでした。最初,使って多コンパイラーをv1.3からv2.0

 にしたために,仕様が変更になったのかと思いましたが,いくら

 さがしても,OSCCONなるものがヘッダーファイルにもみあたらず,
 
 約一日はまりました。分かれば簡単ですね。

    PCONbits.OSCF=1

 の設定で,内部クロックの4MHZに設定できました。

 この辺も,マニュアルみればよかったのですね。

 今日,プログラムを書き込み,無事動きました。

 

もう一つはまったのは,

     ADCON1

 を使ったことです。これもあたりまえですね,

    CMCON

 を使えばよかったことです。この辺もキット,マニュアルをよく

 よめばすんなりだったのでしょうね。Webはくしゅ

| mabo52 | 22:56 | comments (4) | trackback (0) | DIY::  -pic |
---最新 X IDE のバグ (xc.h の読み取りバグ)---
 最新の X IDE では,まだバグがあるようです

 仕様の変更があるようです。

 デフォルトのインストールだけでは,xc.h の読み取りがうまく

 行かないようです。ネットで検索すると,

    HP-1

    HP-2

    HP-3

 あたりに,記述がありましたので,私の環境で,まとめておきます。


 X IDE の画面で,目的のプロジェクトを右クリックしします。

 

 下記の最下部のPropertiesをクリックします。

 


 次の画面になりますので,XC8 Global Option をクリックします。


 


 この画面で,右の方の C99 の選択ボックスを開いて

    C99→C90

 に変更して,下部のApplyをクリックして終了です。

 Webはくしゅ

| mabo52 | 21:43 | comments (2) | trackback (0) | DIY::  -pic |
---自己保持回路 (3)---
 動作の確認をしていて、いくつか不具合がありましたので、

 多少、プログラムの変更をしました。

 ほとんどといっていいほどコメントをいれていませんでした

 ので、自分で作ったプログラムの解釈に時間がかかりました。

 以下の変更をしました。

      延長のブザーを鳴らす時間 1分→→30秒

      スタート・ストップに出力のON・OFFを合わせる。

 キットで遊ぼうで、PICのプログラムを覚えて、初めて作った

 長めのプログラムです。プログラム領域のおよそ

 70パーセントを使ってます。備忘録のために、掲載して

 おきます。

 HANDA-TIMER.txt

 ところどころ、なんで、こんな変数使ったのか、分からない

 のが沢山あります。Webはくしゅ

| mabo52 | 11:32 | comments (0) | trackback (0) | DIY::  -pic |
---自己保持回路 (2)---
 追加の自己保持回路を組み込み、思った動作できるように

 なりました。



 時間の設定→スタート→1分延長(ブザー)→電源OFF

 の動作です。

 動作時間の設定後、スタートボタンを押すと、カウントダウン

 が始まって、設定時間だけ、半田ごてに電源が入ります。

 設定の時間のカウントダウンが終了して0になると、ブザー

 がなり始め、1分間続きます。このブザーの鳴っている1分間

 の間にスタートボタンを押すと最初に設定した時間で

 カウントダウン(延長)を始めます。

 ブザーが鳴ってる時にスタートボタンを押さないでそのままに

 すると半田ごての電源も自分自身の電源もOFFになります。

 4年越しに思った動作ができるようになりました。Webはくしゅ

| mabo52 | 10:32 | comments (0) | trackback (0) | DIY::  -pic |
---自己保持回路 (1)---
 以前、半田ごてタイマーを作製しました。

 当初の予定では、切り忘れると、自分自身の電源も落とす

 予定でしたが、自己保持と解除がうまくいかなくて、そのま

 になっていました。

 


 自己保持をさせるには、いろいろ方法があるようですが、

 SSRを使って、自己保持回路のテストをしてみました。

  

 うまくいったので、半田ごてタイマーを改造してみようと

 思います。自己保持のための、スイッチも飾りで、つけ

 てありますので、追加部分を加えて、配線をするだけです

 回路図も残ってないのですが、下図のような感じで、SSR

 

 等を付け加えようと思います。Webはくしゅ

| mabo52 | 21:35 | comments (0) | trackback (0) | DIY::  -pic |
---PIC 流れるサインボード (2)---
 なめらかにスクロールする方法について、いろいろアドバイス

 いただきました。

 ハードルが高い部分もあって、なかなか実現できません。

 とりあえず、当初の目的である、PCからの入力を表示する

 ことができました。

 

 PICを初めてから、いつも迷ってたのが、文字のキャラクター

 コードの扱いです。

 VB等では、キャラクターコード得るには、

   Asc('A')

 のように「Asc」の関数を使うようです。プログラムを初めて

 覚えたBasicでも同じような関数を使ったと思います。

 このことが頭に残っていて、関数を使わなければ、と思い

 こんでいました。

 なんのことはない、コンピューター上では、同じ、数字で扱わ

 れるんですね。ですから、アスキーコードを得て、演算をする

 には、端に「int」型にキャストすればいいということがやっと

 わかりました。

      char c1 = 'a';
      int code1 = (int)c1;

 これで、code1には、’a’のキャラクターコードの0x61を得る

 ことができました。

 キーボードからの入力を表示するにあたって、大文字のデータ

 しかいれていませんので、小文字は、0x20を引いて、

   char c1 = 'a';
   int code1 = (int)c1-0X20;

 大文字に変換しました。Webはくしゅ

| mabo52 | 09:12 | comments (0) | trackback (x) | DIY::  -pic |
---PIC 流れるサインボード (1)---
 諸兄のHPを参考に、PICを使ってサインボードを作りました。

 何の使用目的もない、ただのおもちゃです。

 ただ、諸兄のHPで使ってる74HC154は製造中止でしたの

 で、これまた、諸兄のHPを参考に、74LS138二つで置き換

 えて作りました。

 三日ぐらいかかって、配線を終えて、どのような形で、流れる

 サインボードを実現するか考えました。

 参考になるC言語によるプログラムがみあたらなかったので、

 過去の7セグLEDを使った工作を思い出しながら、

 ダイナミック点灯を基本にプログラムを組むことにしました。

 

 8×8のLEDが4枚ですので、8×32列のLEDがならんでます。

 この黄色い□から黄色い□までのLEDに、タイマー割り込みを

 使って、このLEDとダブるように準備したメモリーの内容を

 書き出すことにしました。

 テレビで使われている走査線のイメージでしょうか。

 メモリーには、縦に8個並んでいるそれぞれのLEDの

 ON-OFFの情報を書き込みます。

 右にスクロールさせるには、メモリーの左側の山吹色の部分

 に表示させる文字のデーターを書き込みます。

 左にスクロールさせるには、メモリーの右側の青色の部分に

 表示させる文字のデーターを書き込みます。

 「A」の表示をさせるには、

 

 16進数7個をメモリーに書き込みます。

 左側に書いてある数字が、上から左端の縦の列の情報に

 対応します。

 これをスクロールさせるには、メモリーに書いてある情報を

 それぞれ、一つ右側のメモリに移動する、ということで、実現

 します。

 

 多分、このほかにもスクロールの方法があるのでしょうが、

 自己流で、作製しました。

 実際に動かして見ると、すーっと流れるような表示には、

 なっていません。

 なめらかにするには、もう少し、工夫が必要なんでしょうね。

 

 アルファベットのA~Zまでの大文字のデーターを入れると、

 それだけで、ほぼメモリーが満杯です。

 倍のメモリーのある16F1939に変更してみようと思います。

 USARTを使って、PCのデータをスクロールさせるのが目標

 です。Webはくしゅ

| mabo52 | 20:52 | comments (17) | trackback (0) | DIY::  -pic |
--MPLAB XIDE config 自動生成--
 XIDEに開発環境を移した時はv3.10でしたが、まもなくv3.15

 がでたので、ちょっとたってからVUPしました。

 2.3日前でしょうかXIDE操作してるとv3.20のリリースの

 バルーンがでてきました。

 まだ、VUPはしていませんが、バグフィックス版なのでしょうか、

 それとも新しい機能が追加されたのでしょうか。近々VUP

 してみようと思います。

 PICのプログラムをするのに困ってたのが、「congif」の設定

 で、PICの種類ごとに特有?の設定をするのが面倒でしたが

 XIDEでは、以下の方法で、自動設定できます。

 Window-PIC Memory Views-Configration Bits

 とたどります。

 

 すると下記の画面になりますので、

 

 矢印のOPTIONの各項目をクリックします。すると、ON、OFF

 等の選択ボックスがでますので、設定に応じて選択をします。

 設定が全部おわったら、右クリックをして、

 

 Configration Source Code Outputをクリックすると、

 

 設定してあるPICのConfigのコードが生成されます。

 これを全部コピペするとConfigのできあがりです。Webはくしゅ

| mabo52 | 10:56 | comments (0) | trackback (0) | DIY::  -pic |
---PICの罠(MCLR偏)---
 以前アドバイスいただいたことを試してみようと、下記のような

 実験回路を組みました。

 

 この回路で、

      while(1){
         PORTA=~PORTA
         WaitTime(20000);
      }

 初期設定はありますが、このプログラムを走らせました。

 すると、最初は、思った動作をしますが、

 

 途中で、止まってしまいます。プログラム的には、間違いは

 ありません。

 PICの足に触ると、動き出したり、止まったり、動作が安定し

 ません。

 

 通常は、○ドウインの基板を使ってテストしてますが、

 この基板で動いて、ブレッドボードで実行すると、回路は、

 間違ってないのに動かないという事象に遭遇しました。



 違いを考えると、○ドウインの回路は、リセットの回路が組まれ

 ていますが、ブレッドボードでは、組まれていません。

 NETで検索するとありました。MCLRと呼ばれるリセットに使わ

 れる端子を有効にしておくと、リセットの回路がない状態で

 は、不安定になるとありました。

 
 そこで、前述のプログラムのconfigの設定を、

     MCLREN→MCLRDIS

 にして、再度コンパイル、それで、動かしてみました。

 

  あっけなく動きました。


  アドバイスいただいた通りの動作でした。

  LEDの極性を反対にして、ポートにつなぐのが味噌です。

  プログラムでは、時間をおいて、HIGHとLOWを繰り返して

  るだけです。

  こうすることで、PICがHIGHになると吸い出し?でLEDが

  点灯し、LOWになると吸い込みでLEDがつきます。

  私には、目から鱗でした。

  PICのポートが少ない時は、応用ができ

  そうです。Webはくしゅ

| mabo52 | 21:12 | 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