としぶぅ~の「工作部屋」...毎日少しのお勉強

趣味・関心事を書いていこうと思います。

PIC12F1822でデバッグ

2013-03-23 15:33:27 | PIC12F1822

こんにちわ

としぶぅ~です。

 

先日アップしましたブログで紹介しましたが、

「1ランク上のPICマイコンプログラミング」

に書かれていた、PIC16F1xxx or PIC12F1xxxはヘッダなしでデバッグできる・・・・

をとりつかれたように検証してました。。。。というか動かないので「なぜ!」「なぜ!」「WHY!」

という状態になって調べまくっていただけですが(笑)

しか~し!無事にデバッグできる事を確認できました。

これを必死になってやる意味?

あるでしょう~

だって。。。。いちいちヘッダ準備しなくても内部のレジスタとか確認できるんですから・・・

ただし、ヘッダなしでデバッグするときは、3pin分のポートは使用できませんが。。。。

それでもですね~。。。PIC12F1822とかの8pinPICでデバッグができるのは非常に

うれしいです。

それで、何が原因でデバッグできずにはまってしまっていたか・・・・

実は先日Pickit3に逆電圧かけて壊しちゃったんですが・・・・それを修理したんですが。。。

ちゃんと治っていなかった・・・というところでしょうか・・・

書籍に書いてあるように、コンフィグレーションビットを設定してデバッグモード用のプログラムを

書き込むところまでは行くんですが。。。。”RESET” または、”RUN”を実行すると、

「コンフィグレーションビットがおかしいからデバッグできないよ!」というようなメッセージが!!!

コンフィグレーションビットをいくらさわっても・・・・上記現象はとれない・・・

相当これで悩みました。。。

で、昨日夜から「これはおかしすぎる」と・・・

今朝から、依然作ったボードでPickit3がちゃんとデバッグ動作するか確認しました。

すると。。。Pickit2ではデバッグできているが。。。Pickit3にしたとたんできなくなる・・・

通信はできるが、IDが取れたりとれなかったり。。。。。また、ターゲットボードがない・・・とか

ちょっと挙動がおかしいのでPickit3を疑って、先日交換したチップを再度半田であたってみ

ました。。。で、動作確認!

おぉ・・・・ちゃんとデバッグできるようになりました。(旧ボードでです。)

では、PIC16F1827をのせたプレッドボードではどうか・・・・「おぉ!」

ちゃんと動く・・・・少し感動(笑)

いいですね~

では、PIC12F1822をのせたブレッドボードで確認!

おぉ~動く~(笑)

ちゃんとどちらもブレイクポイントに止まり、レジスタの内容も見れています。

いや~

いいですね~

これでどんどんいろいろなことができる!

あと、最後に補足です。

デバッグができる状況でPickit3とターゲットボードを接続すると下記のような表示が

でます。

左はヘッダを使わずにデバッグするとき

右はヘッダを使ってデバッグするとき、

クリックします。

こんな表示始めてみました^^;

とりあえず動作してよかった。。。

今日はこんなところでしょうか・・・・


桜・・・・咲き始めましたね・・・みなさん花見でしょうか・・・・わたしもいきたいな~(^o^)







1ランク上のPICマイコンプログラミングという本買いました。。。

2013-03-19 22:32:15 | 書籍紹介

こんばんわ

としぶぅ~です。

 

昨日、今月の20日に発売予定の本を予約していたんですが・・・・・それがもうつきました(笑)

2日も前にでるとわ・・・・

書籍の名前は、

「1ランク上のPICマイコンプログラミング」

東京電機大学出版

著者:高田直人

 

内容はほとんど確認せずに、1ランク上か~なんて感覚で注文しました。

  -> amazonで注文! http://www.amazon.co.jp/gp/product/4501329300/ref=cm_cr_rev_prod_img

で、昨日ついたんですが、ついてぱっと開いて読んだとたん・・・・「えっ!」

ってそのまま読み漁ってしまいました。。。。

何に飛びついたかというと、PIC16F1xxxはPickit3でヘッダなしでデバッグができると書いてある・・・・???

「まじですか!?」

って感じでした。。。。

読んでみていろいろさわってみましたがうまくいかない・・・・^^;

なぜだい!

ま、明日休みだからがんばってみます^^

 

で、本の内容ですが、この本は説明本?

という感じの本でしょうか・・・・なかなか読みやすいです。

いろいろ写真と絵を使って説明してあります。

しかもデバッグの仕方・・・シュミレーションの使い方・・・なかなかいい本だと思います。

デバッグとかしたことない人は一度読んでみてはいかがでしょうか・・・・よい参考書になると思います。

ちなみに使用しているPICはPIC16F1827でした。

秋月電子で買うと110円・・・・で買える20ピンのマイコンです。

 

今日はこんなところでしょうか・・・・

それではまた(^o^)/

 

 


これからやろうと思っていること。。。

2013-03-18 05:08:45 | マイコン

おはようございます。

としぶぅ~です。

 

さて。。。これから何をやろうかな・・・・と最近考えております。

PIC16F690はI2Cのマスターモードをソフト制御で行いました。。。。出力のみ。。。

ペリフェラルにマスターモードをもっているPICを使用してみたいな。。。と考えてたりしてます。

最近の新しいPICはほぼ持っているようですのでいけそうですよね。

やりたいことは、I2C<->シリアル変換できるようにすると意外と便利?と思ったりしています。

現在構想中!

問題はシリアルがどれくらい受けれるようにできるか?というとこですかね。。。。。

ま、その辺実験しながら少し進めてみようかな。。。。。なんて考えています。

もっと面白いこと・・・・・やろうとするととにかく時間がかかる。。。。仕事しながらはつらいですね^^;

 

ま、がんばって考えて行きます。

 

ちょっと更新はどうなるかわからないですが。。。。進んだらすこしずつブログ更新します。

 

 

と、まあこんな感じです。

 

今日は今後の構想ということで、文字ばかりですが。。。。

 

それではまた^^

 


関数電卓!

2013-03-17 18:39:34 | お買い物

こんにちわ。

としぶぅ~です。

 

昨日、今日といい天気でしたね^^

ゆっくり休みました。。。。

 

で、本日はマイコンとか回路設計するときに欲しくなる関数電卓・・・について。。。

会社ではCASIOの関数電卓を使っています。

しかし。。。自宅にはSHARPとCanonのものしかなく、結構使いにくかったりします。

で、安くて使いやすいのないかな・・・・とAmazonを探してると。。。「んっ!?」

HP製が・・・・・

HPでも電卓作ってるんだ・・・・しらんかった・・・(笑)

早速買ってみました。

値段も”¥1570-”と安い。。。。

http://www.amazon.co.jp/gp/product/B00ARD4Y0C/ref=oh_details_o00_s00_i00?ie=UTF8&psc=1

これですね。。。

ケースに入っている・・・・真っ白^^

関数電卓で白なんて・・・・決行おしゃれですね。。。

そこで、今まで何が困るかって・・・・それは、CASIOにあるエンジニアキーというものが他社にはない・・・

もしくは、同じような動きをしてくれない。。。かな。。。

”μ”とか”n”とか”m”とかっていう単位の10x10の何乗。。。というところがうまく表示してもらえない。。

たとえば、”0.01u”つまり0.01x10の-6乗を表示させると。。。

各社ばらばらな表示されるわけです。。。。

SHARPは”ENG”キー自体がない・・・・同じような機能は”F<->E”というキーですかね。。。

Canonは”ENG”キーがあります・・・・が上に書いたSHARPの電卓と同じですね。。。

CASIOの”ENG”キーって何が違うのか・・・・

たとえば、先ほどの0.01x10の-6乗と電卓に打ち込むと”0.00000001”となるわけですが。。。

ENGキーを押すとまず、10x10-09という表示なります。

つまり、10nということになりますね。。。再度ENGキー押すと10000x10-12という表示なり、10000pと簡単に

単位を変換できちゃうんですよね。。。。逆も可能・・・

この機能って、高校のときから使っていていまさら使えないのは。。。なかなかつらいですね。

で、話はずれましたが、本日購入したHPの電卓はCASIOと同じ機能持っています。ENGキーの使い方は全く同じですね^^

最後に3個の電卓の表示を・・・

今日はこんな感じで・・・・

 

 

 


PIC16F690を動かす。。。その11(I2C-LCDモジュール)

2013-03-15 05:15:31 | PIC16F690

おはようございます。

としぶぅ~です。

 

今日は少し冷えますね・・・風邪引かないように気つけないと・・・・

さて本日は。。。。

 

昨日、一度LCDに表示が出たけどまたでなくなった・・・・という状況をみて、Delayはちゃんと動いているのか?

外部クロックにしたし。。。。時間がずれている?

とか疑いがわいたのでとりあえず、Delayの関数を使って時間がちゃんと合うように調整しました。

main.cで

    //無限ループ
    while(1){
        clear_bit(PORTB,5);
    DelayMs(15);
        set_bit(PORTB,5);
    DelayMs(15);
        }

こんな感じで”DelayMs()”関数を仕込んでポートをオシロであたりました。

DelayUs()を使用した場合、50を入力すると、大体75uSくらいになります。。。。uSだとかなり誤差でます。。。

Msだとどうか・・・・

DelayMs(1)で1msを見込みますが・・・・1.5mSくらいになってしまう。。。。ずれが大きい!

で、Delay.c内を少しさわって調整!!

DelayMs(unsigned char cnt)
{
#if    XTAL_FREQ
    do {
        DelayUs(996);
    } while(--cnt);
#endif

#if    XTAL_FREQ > 2MHZ    
    unsigned char    i;
    do {
        i = 4;
        do {
            DelayUs(175);   ←ここを変更して調整!!250←175に
        } while(--i);
    } while(--cnt);
#endif
}

上記を修正しました。

10,15といれてみましたが、とりあえず10msと15msが出ているようです。

 

時間調整はとりあえずOKです。

 

さて。。。。いよいよ本題!

LCDをさわります。

 

何をさわったかというと、LCDのマニュアルをよんでいると。。。。!?

ん???

このやりかた?

今までよく動作していたな??

というところを発見!

イニシャライズの手順がプログラムと違う(^^;

早速変更。。。。。結構違っているので手間がかかりました。。。。

修正すると!

「でたっ!」

なんと・・・・初期化の手順が違っていた・・・・・でも今まで違ったまま表示がでていたのか(笑)

ま、これで現状のプログラムを基本プログラムにします。

いいですね。。。。I2C制御のLCDモジュールが完成です!!

ちょっと表示が遅いかな。。。。I2Cの関数をもう少し調整しなければ・・・・

 

ま、モジュール化完了!!

 

かな~り時間がかかってしまいましたが。。。。なんとかこぎつけました!

さて。。。次は。。。。ジャイロモジュールでもさわってみますかね

 

今日はこの辺で・・・・それではまた(^o^)

みなさま本日もよい一日を~