• 追加された行はこの色です。
  • 削除された行はこの色です。
#freeze
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)
 
 *発光ダイオード(LED)の明るさを変える(PWM) [#zb760731]
 
 PIC内蔵の「PWM(Pulse Width Modulation)機能」を利用した簡単なプログラムを作成し、
 12F683の「PWM制御」機能の利用法、稼働を確認しました。  07/02/03
 
 注)12F683の場合、PWM信号はGP2から発信される。
 
 関連MikroC関数
 void Pwm_Init(unsigned long freq);
 void Pwm_Change_Duty(unsigned short duty_ratio);
 void Pwm_Start(void);
 void Pwm_Stop(void);
 
 &attachref(P1010276.JPG,zoom,150x150,button){新しい写真添付};
 
  /**
  * 12F683の稼働テスト
  * PWM機能で発光ダイオードの明るさを徐々に変える
  *
  * PIC12F683
  * GP2: LED (CCP(PWM)出力)
  * GP1: LED (照度比較用)
  * Clock: 8.0MHz 内蔵発信器使用
  * Device Flags:
  * _CP_OFF  _MCLRE_OFF _PWRTE_ON _WDT_OFF _INTRC_OSC_NOCLKOUT
  *
  * MikroC v6.2.1
  */
  
  void main() {
      //使用変数の定義
      unsigned short int i;
  
      //マイコンの初期化
      //内臓クロック8MHzに設定
      OSCCON.IRCF2=1;
      OSCCON.IRCF1=1;
      OSCCON.IRCF0=1;
  
      GPIO = 0b00000000; //GPIOの中身をきれいにする
      TRISIO = 0b00000000; //GPIP全て0:出力設定
      PWM_Init(5000); //PWMの初期化 (5KHz周期指定)
      //マイコンの初期化終わり
  
      GPIO.F1 = 1; //照度比較用LED ON
  
      PWM_Start(); //PWM機能スタート
      do {
          //LEDの明るさを徐々に変える
          for (i = 0; i < 256; i++) {
              PWM_Change_Duty(i); //PWMのDuty変更
              Delay_ms(100); //100msec待つ
          }
      } while(1);
  }
 ★この情報は役に立ちましたか?
 #vote(はい[16],普通[5],いいえ[3])
 #vote(はい[17],普通[5],いいえ[3])
 
 #comment_nospam