スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--) | スポンサー広告 | トラックバック(-) | コメント(-)

PICで素数の判定 ソースコード

前回Upした「PICで素数判定器」の記事の全ソースコードです。

ソースコード

PICF1822/1840で動作確認していますが,
その他のPICでも設定が合っていれば基本的に動作するはずです。

ポートの設定をsystem.hで下記の通り定義しているので,
必要に応じて変更すれば,Pinアサイン対応できます。

  #define sda RA2 //I2C_DATA
  #define TRISSDA TRISA2 //I2C_DATA I/O
  #define sclk RA1 //I2C_CLOCK
  #define TEST_LED RA0

秋月電子 I2C接続キャラクタLCDモジュール」用の
サンプルコードのライブラリのコード自体は下記です。
秋月電子 I2C接続キャラクタLCDモジュール用サンプルコード

本職がプログラマでは無いので,トリッキーな事は省いて
半年先の自分でも読めるコードを目指してます。
バグ,変なところ見つけたらコメント欄でお知らせいただきたく。


再改変は自由ですが,再配布・商用利用するときは
一言コメントください。
現状渡し,内容については一切責任持ちません。


スポンサーサイト

2012/09/17(月) | I2C接続LCD | トラックバック(0) | コメント(0)

PICで素数の判定

ちょっと体調が復活してきたので,1から順番に素数かどうかを判定する
プログラムを組んでみました。

ぼーっと見ていると面白いです。



##
需要が有るか分かりませんが,別途,全コード公開します。
秋月I2C接続キャラクタLCDの表示テストプログラム位には
なるかなぁと思いますので。

↓プログラムの詳細は下記。
read more...

2012/09/16(日) | I2C接続LCD | トラックバック(0) | コメント(0)

スイッチON/OFFで割り込み発生する方法

相変わらず,PICの設定は難しいと感じています。
一度一通り失敗してなれれば良いのでしょうけど。
マニュアルも英語で読み方がイマイチ理解できていないし。

という訳で,しばらくドツボにハマっていた
(というより,投げ出していた)
個別の入力ポート変化での割り込み方法が理解できたのでメモです。

↓設定方法メモ
read more...

2012/08/02(木) | I/O割り込み | トラックバック(0) | コメント(0)

PIC12F1822をTimer1 だけ低クロックで使う方法

例えば,Timer1をかなりゆっくりした周期で回したいと思ったとき。
下のコードみたいに書いているのですが,
if文でDelay増やすのをなんとかできないかなと思って
Timer1だけ別のClockを使う事を思いついたのです。
12F1822には32kHzの内蔵Clockが別に入っているので出来んじゃない?と。

知っている人には当たり前すぎる情報かもしれませんが,
ハマったのでメモしておきます。

void interrupt isr(void) {
    if (TMR1IF == 1) {
    TMR1H = 0x3C;
    TMR1L = 0xd5; //3caf = 50msec by 32MHz
    CLRWDT();

    if (Timer1Delay > 0) {
        Timer1Delay--;
        TEST_LED = Timer1Delay % 20 / 10;  //0.5秒ごとに点滅
    } else {
        Timer1_Function(); //TImer1割り込みでやらせたい機能のCall
        Timer1Delay = DELAY;
    }
    TMR1IF = 0;
}

さて,結果は。
read more...

2012/07/25(水) | Timer1利用 | トラックバック(0) | コメント(0)

秋月電子 I2C接続キャラクタLCDモジュール用サンプルコード

前々からキャラクタ表示するLCDを使いたかったのですが,
今まで躊躇していました。

普通のキャラクタ液晶だとI/Oを8pinも使わなければならない(らしい)
というので,たかが表示にそんなに奢れない,という理由です。

その点,I2C接続なら使うI/Oは2pinで済みます
これなら8PinのPICでも負担が少ない。
早速使う事にしました。

↓コレです。
C接続キャラクタLCDモジュール[16x2行]白色バックライト付
[
ACM1602NI-FLW-FBW-M01]


いきなりですが,私の作ったサンプルコードあげてしまいます。

ソースコード

入れた表示方法は下記です。
 ・今いる場所から指定文字列表示
 ・1行目の行頭に戻って指定文字列表示
 ・2行目の行頭に戻って指定文字列表示
 ・1行目の行頭から書き始めて,あふれたら2行目へ折り返し
 ・上記に対して,
   ・パッと一発表示と,
   ・タカタカタカと指定msec遅延しながら表示
     (MISSION COMPLETED_的な使い方想定)
  の2種類で表示できます

 その他,細かいコマンドと削除関数を持ってます。

PIC12F1822/PIC12F1840,XC8 v1.00/v1.01/v1.10で動作確認しています。
お役に立てればと思います。
(バグ見つけた場合,ここのコメント欄でお知らせください。)

再改変は自由ですが,再配布・商用利用するときは
一言コメントください。
現状渡し,内容については一切責任持ちません。


以下,使う時のコツです。
read more...

2012/07/23(月) | I2C接続LCD | トラックバック(0) | コメント(0)

 |  HOME  |  »
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。