- 追加された行はこの色です。
- 削除された行はこの色です。
#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(はい[11],普通[2],いいえ[2])
#vote(はい[12],普通[2],いいえ[2])