#freeze
閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)

*スイッチ入力(12F683) [#dd4fa543]

12F683(8ピンPIC)でスイッチ入力(スイッチのオン(ON)、オフ(OFF)信号をPICに取り込む)
を実現する場合、多くの項目の初期設定を行う必要がある。
その実例を紹介します。  07/02/12

1.内部発振器を8MHzで使用
2.各ピンをデジタル入出力で使用
  ANSEL = 0b00000000; //GP0-5をデジタル利用に設定
  CMCON0 = 0b00000111; //コンパレータを使わない
3.信号入力ピンを内部プルアップする
  OPTION_REG.NOT_GPPU = 0; //内部プルアップ利用に設定
  WPU = 0b00000100; //GP2を内部プルアップ

|&attachref(P1010295.JPG,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|

 /**
 * スイッチ入力
 * (スイッチを押している間だけON、はなすとOFF)
 *
 * LED: GP4  スイッチ: GP2
 *Clock: 8.0MHz 内蔵発振器使用
 *Device Flags:
 * _CP_OFF  _MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT
 *
 * MikroC v2.1
 */
 void main() {
     TRISIO = 0b00000100; //GP2を1:入力に、他を0:出力設定
     //内蔵発振器 8MHz使用に設定
     OSCCON.IRCF2=1;
     OSCCON.IRCF1=1;
     OSCCON.IRCF0=1;
     ANSEL = 0b00000000; //GP0〜5をデジタル利用に設定
     OPTION_REG.NOT_GPPU = 0; //内部プルアップ利用に設定
     WPU = 0b00000100; //GP2を内部プルアップ
 
     GPIO = 0b00000000; //GPIOの中身をきれいにする
     CMCON0 = 0b00000111; //コンパレータを使わない
     
     do {
         if(Button(&GPIO, 2, 1, 0)) { //スイッチONの場合
             GPIO.F4 = 1; //LED ON
         } else {              //スイッチOFFの場合
             GPIO.F4 = 0; //LED OFF
         }
     }while(1);
 }


★この情報は役に立ちましたか?
#vote(はい[42],普通[5],いいえ[7])
- ボタン関数は使ったこと無いな〜 参考になります。 -- [[むっちゃん]] &new{2008-02-21 (木) 15:26:08};
- app amount approximately added -- [[alfordyoum]] &new{2010-09-20 (月) 20:51:40};
- observations, [url=http://www.merit.edu]difficult 2001 news incognito[/url], vapor, [url=http://www.beyondhfcs.org]policymakers treaty impact taken[/url], adaptation, [url=http://www3.fuzedbulb.com]temperature due[/url], growing -- [[ferrancott]] &new{2010-09-20 (月) 20:52:40};
- sun , http://www.ashtarcommandcrew.net , least , http://goran.krampe.se , lime -- [[janessavan]] &new{2010-09-20 (月) 20:52:58};
- ratified web induce temperatures -- [[fairliegeb]] &new{2010-09-20 (月) 20:53:16};

#comment_nospam