ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

PIC Lab.コミュのLEDの点灯プログラムについて

  • mixiチェック
  • このエントリーをはてなブックマークに追加
はじめましてこんにちは。
PIC16f84Aを使用して、二時間毎に
6個のLEDを一個ずつ、順番に点灯させたい
のですが、教えて頂けないでしょうか?
長時間の制御をする、プログラムがわかりません。
宜しくお願い致します。

コメント(11)

WAITのネストを深くするのではだめなんですか?

精度が悪くなるというのならRTCを使うとか
す、すいません。私、まだ素人な者で、
プログラムを書いていただけると助かります。
ちなみに、Cで、コンパイラはCCS社の物を使用
しております。
http://ja.wikipedia.org/wiki/%E3%83%8D%E3%82%B9%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0#.E3.83.AB.E3.83.BC.E3.83.97.E6.96.87.E3.81.A7.E3.81.AE.E5.85.A5.E3.82.8C.E5.AD.90
細かな条件が判らないので主要部分を参考程度に・・・

main(){
// 色々初期設定

wait2h();
// LED1のポート制御
wait2h();
// LED2のポート制御
wait2h();
// LED3のポート制御
wait2h();
// LED4のポート制御
wait2h();
// LED5のポート制御
wait2h();
// LED6のポート制御

while(1);
}
//
// 1分を120回待って2時間
wait2h(){
int i;
for(i=0;i<120;i++) wait1m();
}
//
// 1秒を60回待って1分
wait1m(){
int i;
for(i=0;i<60;i++) wait1s();
}
//
// 100m秒を10回待って1秒
wait1s(){
int i;
for(i=0;i<10;i++) delay_ms(100);
}

delay_ms(1000);を使えばwait1s()は不要かな(笑
じゅん様
Wikipediaありがとうございます。
ウェイトの入れ子を深くするというのが
解りました!書き方をマスター
出来る様に頑張ってみます。

さるもねら様
プログラムありがとうございます‼
ちなみにRB0〜5を出力ピンに使いたい
のですが、割付方をどうすればいいですか?
聞いてばっかりで、誠に申し訳ありません。
宜しくお願い致します。
風の谷のナウボーイさん>

「割り付け方」とはピンのI/Oの設定方法という事ですよね?
main()の初期設定の部分で・・・・
set_tris_b(0b00000000);
これでBポートが全部出力になりますよ。

PICを使うのは初めてですか?
その他の設定やConfigなどは実際に作る回路や条件などで変わるので答えられません。
入れ子が解らないようでしたので関数化しましたが、状況(LED点灯パターンとか)
によっては入れ子でプログラムしたほうが見やすくなります。
さるもねら様ありがとうございます。
コンフィグ等の設定方法はなんとか、
わかるのですが、下記のプログラムにピンの出力命令をどこに書けば良いですか?
わからない事ばかりで、すみません。


// 1分を120回待って2時間
wait2h(){
int i;
for(i=0;i<120;i++) wait1m();
}
wait2h()はそのままでmain()の中の
// LED1のポート制御
の部分に出力命令を書きます
さるもねら様
ありがとうございます‼
明日仕事で試してみたいと思います。
誠にありがとうございました。
さるもねら様

今日、仕事で試してみた所、
無事にうまく行きました‼
誠にありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

PIC Lab. 更新情報

PIC Lab.のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング