#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(はい[58],普通[11],いいえ[19])

#comment_nospam