« 12-4 割り込み | メイン | 12-6 A-Dコンバータと割り込み »

はてなブックマークに追加   12-5 割り込み ~その2~

 課題4でPIC12F683の割り込みプログラミングを説明しました。この課題では250msの間隔を100msに変更しましょう。

割り込み計算

  set_timer1(初期値);

 この初期値の数値で割り込み時間を変えることができます。

初期値をxとして、一次方程式を立てます。

  0.5*10^-6*8*(65535-x+1)=100ms


 これを解くと、

   x=(その1)

と求めることができます。この値を初期値とすればtimer1には100msの割り込みが発生します。

課題5

 起動時にLEDを250ms間隔でで3回点滅後、割り込みを使い100msでLEDを点滅する。

// 赤外線2ch送信機TX2-006P 課題5
// 割り込み
//  起動時250msで3回点滅後、割り込みを使い100msで点滅する。
// ex5-006p.c PIC12F683用

#include<12f683.h>
#DEVICE ADC=10 //A-Dコンバータを10bitで使用
//10bit=2^10=0~1023

#fuses INTRC_IO,NOWDT,PUT,NOPROTECT,NOMCLR
//ウオッチドック・タイマなし、パワーアップ・タイマ使用
//プロテクトなし、MCLRなし

#use delay(CLOCK=8000000)  //8MHz駆動
#byte GP=5//GPポート使用
 #bit IROUT=GP.5//赤外線LED
 #bit LED=GP.4//LED
 #bit SW=GP.3//ジョイスティック付属スイッチ
 
// A-Dコンバータの割り当て
//ch0:スロットル
//ch1:エルロン
//ch2:10kΩ半固定抵抗

#define ON 1
#define OFF 0
#define HI 1
#define LOW 0

int led_sts;

// 0.5*10^-6*8*(65535-x+1)=100ms
//x=(その1)
#int_timer1//割り込み関数定義
alart()//100msごとに割り込みを発生する
{
  set_timer1((その1));
  led_sts=0x01-led_sts;
  LED=led_sts;
}

//メイン・ルーチン

void main()
{
  int i;
  set_tris_a(0x0f);//GP0~GP4入力、GP5出力
 
  setup_oscillator(OSC_8MHz);

  setup_timer_1((その2));//250msごとの割り込み
  set_timer1((その3));//timer1初期値
 
  IROUT=OFF;
  LED=OFF;
  led_sts=0;

  for(i=0;i<3;i++){
    LED=ON;
    (その4);
    LED=OFF;
    (その5);
  }

  enable_interrupts((その6));//割り込み許可
  enable_interrupts((その7));//割り込み全体許可

  while(1){
  }
}

 空欄を埋めてプログラムを完成してください。

正解

(その1)40536 (その2)T1_INTERNAL | T1_DIV_BY_8 (その3)40536 (その4)delay_ms(250) (その5)delay_ms(250) (その6)INT_TIMER1 (その7)GLOBAL

 課題5のC言語ソース・ファイルとHEXファイルはこちらからダウンロードできます【ex5_006p.lzh

長野県飯田工業高校 竹内浩一
 

トラックバック

このエントリーのトラックバックURL:
http://www.eleki-jack.com/mt/mt-tb.cgi/1436

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

カレンダ

2008年10月
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 31

おすすめ書籍

会社案内
情報セキュリティおよび個人情報の取り扱いについて

コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。
コメントはそれぞれ投稿した人のものです。

About

2008年6月 3日 12:05に投稿されたエントリーのページです。

ひとつ前の投稿は「12-4 割り込み」です。

次の投稿は「12-6 A-Dコンバータと割り込み」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 4.1