2010年11月18日木曜日

PWM機能でLEDの明るさ制御


RB0ポートかRB3ポートのどちらかを選択して利用出来ます。
Device Flags:で指定します。


  1. /* 
  2. 概要:PWM機能でLEDの明るさ制御 
  3.  
  4. 使用マイコン:16F886 
  5.  
  6. 使用ポート:RB0/INT/CCP1 
  7.  
  8. 発振器: Clock: 8.0MHz 内蔵発振 
  9.  
  10. Device Flags: 
  11.  _CP_OFF    _CCP1_BR0   _DEBUG_OFF  _WRT_ENABLE_OFF 
  12. _CPD_OFF _LVP_OFF    _BODEN_OFF _MCLRE_OFF 
  13. _PWRTE_ON _WDT_OFF    _INTRC_IO 
  14. IESO_ON__CFG2   _FCMEN_ON__CFG2 
  15.  
  16. MikroC v8.2.0.0 
  17. */  
  18.   
  19.   
  20. void main() {  
  21.   
  22.  unsigned short int i;  
  23.   
  24.  OSCCON = 0b01110000; //内蔵発振器 8MHz使用に設定  
  25.   
  26.  // A/D Pref // ANALOG=1, DIGITAL=0   
  27.  ANSEL = 0b00000000;  
  28.   
  29.  TRISA = 0b11111111;  //すべてインプット  
  30.  TRISB = 0b00000000;  //すべてアウトプット  
  31.   
  32.  //ポートの初期化  
  33.  PORTA = 0b00000000;  
  34.  PORTB = 0b00000000;  
  35.   
  36.  //PWM mode//  
  37.  PWM_Init(5000);   //Initialize PWM module at 5KHz:  
  38.  PWM_Start();   // start PWM  
  39.   
  40.  while (1) {  
  41.   for (i = 0; i < 256; i++){  
  42.   PWM_Change_Duty(i);  
  43.   Delay_ms(50);  
  44.  }  
  45.   
  46.  }  
  47. }  

PWM_Change_Duty(i); iが0の時0% 127の時50% 255の時100%とマニュアルには書いてありました。

0 件のコメント:

コメントを投稿