• 追加された行はこの色です。
  • 削除された行はこの色です。
 閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)
 
 *発光ダイオード(LED)の明るさを変える(PWM) [#c2f1029b]
 
 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(,zoom,150x150,button){新しい写真添付};
 
  /**
  * 24F64の稼働テスト PWMの使用方法
  *
  * PIC24FJ64GA002
  * LED: RB15
  *
  *Clock: 8.0MHz 内蔵発振器使用
  *電源:乾電池2本(3.0V)
  *Device Flags:
  *_IESO_OFF _FNOSC_FRC _FCKSM_CSDCMD _OSCIOFNC_OFF _POSCMOD_NONE
  *_JTAGEN_OFF _GCP_OFF _GWRP_OFF _BKBUG_OFF _COE_OFF _ICS_PGx1 _FWDTEN_OFF
  *
  *_IESO_OFF 2速度スタートアップ無効
  *_FNOSC_FRC クロックは内蔵オシレータを利用(8MHz)
  *_FCKSM_CSDCMD 動作中のクロック切り替え&監視OFF
  *_OSCIOFNC_OFF RA3はI/Oとして利用 _POSCMOD_NONE 主発信機無効
  *_JTAGEN_OFF  JTAG無効    _GCP_OFF  コードプロテクト無効
  *_GWRP_OFF  プログラムメモリ書込み禁止 _BKBUG_OFF デバッグモードにリセット
  *_COE_OFF  Clip-onエミュレーション無効
  *_ICS_PGx1  ICSP書き込みにPGC1/PGD1を使う FWDTEN_OFF  ウォチドック無効
  *
  * MikroC dsPIC v4.0.0.0
  */
  void main()
  {
      unsigned int pwm_period1, i;
  
      PORTB = 0b0000000000000000; //PortBの中身ををきれいにする
      TRISB = 0b0000000000000000; //PortB 16個全て0:出力に設定
      //RP15ピンにOC1機能(PWM出力)18(=0b10010)を割付
      RPOUTR7bits.RP15R4 = 1;
      RPOUTR7bits.RP15R3 = 0;
      RPOUTR7bits.RP15R2 = 0;
      RPOUTR7bits.RP15R1 = 1;
      RPOUTR7bits.RP15R0 = 0;
  
      pwm_period1 = Pwm_Init(5000, 1, 1, 2);
  
      LATBbits.LATB14 = 1; //照度比較用LED ON
      
      Pwm_Start(1);
      while(1)
      {
          for(i = 0; i < pwm_period1; i++)
          {
              Pwm_Set_Duty(i, 1); //LEDの明るさを徐々に変える
              Delay_ms(20); //0.02秒(=20ミリ秒)待つ
          }
      }
  }
 
 ~
 ~
 ★この情報は役に立ちましたか?
 #vote(はい[5],いいえ[0])
 
 #comment