2010年11月18日木曜日

PWM機能でLEDの明るさ制御


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


/*
概要:PWM機能でLEDの明るさ制御

使用マイコン:16F886

使用ポート:RB0/INT/CCP1

発振器: Clock: 8.0MHz 内蔵発振

Device Flags:
 _CP_OFF    _CCP1_BR0   _DEBUG_OFF  _WRT_ENABLE_OFF
_CPD_OFF _LVP_OFF    _BODEN_OFF _MCLRE_OFF
_PWRTE_ON _WDT_OFF    _INTRC_IO
IESO_ON__CFG2   _FCMEN_ON__CFG2

MikroC v8.2.0.0
*/


void main() {

 unsigned short int i;

 OSCCON = 0b01110000; //内蔵発振器 8MHz使用に設定

 // A/D Pref // ANALOG=1, DIGITAL=0 
 ANSEL = 0b00000000;

 TRISA = 0b11111111;  //すべてインプット
 TRISB = 0b00000000;  //すべてアウトプット

 //ポートの初期化
 PORTA = 0b00000000;
 PORTB = 0b00000000;

 //PWM mode//
 PWM_Init(5000);   //Initialize PWM module at 5KHz:
 PWM_Start();   // start PWM

 while (1) {
  for (i = 0; i < 256; i++){
  PWM_Change_Duty(i);
  Delay_ms(50);
 }

 }
}

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

0 件のコメント:

コメントを投稿