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