• 追加された行はこの色です。
  • 削除された行はこの色です。
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)
 
 *A/D値でLED点滅間隔変更 [#d667f35f]
 
 
 「A/D変換」を利用した簡単なプログラムを作成し、18F2320の「A/D変換」機能の利用法、
 稼働を確認しました。
 
 A/D変換値(0〜1023)を用いて発光ダイオード(LED)の点滅間隔を0msec〜1023msec
 にスムーズに変化させる。 07/10/06
 
 |&attachref(,zoom,150x150,button){新しい写真添付};|&attachref(,zoom,150x150,button){新しい写真添付};|
 
  /**
  * 18F2320 アナログ入力テスト 0-5V入力−LED点滅時間
  * A/D値で発光ダイオード(LED)の点滅間隔を変更する
  *
  * PIC18F2320
  *
  * A/D: RA1(AN1) (10KΩ半固定抵抗で分圧しアナログ値を生成)
  * LED: RC1
  *
  *Clock: 8.0MHz 内蔵発振器使用
  *Device Flags:
  * _INTIO2_OSC_1H _WDT_OFF_2H _MCLRE_OFF_3H _LVP_OFF_4L
  * (その他はデフォルト設定でOK)
  *
  * MikroC v7.0.0.3
  */
  void main()
  {
      unsigned int temp; //使用変数の定義
 
      //PICの初期化
      PORTA = 0b00000000; //PORTAの中身をきれいにする
      PORTC = 0b00000000; //PortCの中身をきれいにする
     
      OSCCON = 0b01110000; //内蔵発信機 8MHz使用に設定
 
      //A/D変換clock設定 0.125us*16倍=2.0us
      ADCON2.ADCS2=1;
      ADCON2.ADCS1=0;
      ADCON2.ADCS0=1;
  
      TRISA = 0b00000010; //RA1のみ1:入力に設定、他は0:出力
      TRISC = 0b00000000; //PortC 8個全て0:出力設定
      //マイコンの初期化終わり
 
      do
      {
          //アナログデータの取得 10bit(0~1023)
          temp = ADC_Read(1); //RA1(AN1)アナログ入力
  
          //LED点滅間隔が0-1023msecで滑らかに変更出来る
          PORTC.F1 = 1;
          VDelay_ms(temp);
          PORTC.F1 = 0;
          VDelay_ms(temp);
      } while(1);
  }
 
 ★この情報は役に立ちましたか?
 #vote(はい[2],いいえ[1])
 
 #comment