#freeze
閲覧総計:&counter();  (本日:&counter(today);  昨日:&counter(yesterday);)~
~
*1024分解能ハードPWM制御自作関数 [#ef01afa1]

MikroCに用意されているPWM関数はPWM分解能が256である。
しかし、PIC16系に組み込まれているハードウエアPWM機能は10ビット(1024分解能)
である。
ハードの性能を100%引き出す、1024分解能のPWM制御を実現する為に自作my_Pwm関数
を作成したので紹介する。
(発光ダイオード(LED)の明るさを徐々に変えるプログラムで稼働確認を実施) 06/11/26

注)16F628Aの場合、PWM信号はRB3から発信される。

関連自作my_Pwm関数
void my_Pwm_Change_Duty(unsigned int duty_ratio);

関連MikroC関数
void Pwm_Init(unsigned long freq);
void Pwm_Start(void);
void Pwm_Stop(void);

|&attachref(LEDの明るさを変える回路写真.JPG,zoom,150x150,button){新しい写真添付};|&attachref(LEDの明るさを変える.jpg,zoom,150x150,button){新しい写真添付};|

 /**
 * 1024分割制御 自作Pwm関数
 * 発光ダイオード(LED)の明るさを徐々に変える
 *
 * PIC 16F628A
 * 発信器:内臓4MHz
 * 電源:乾電池3本(4.5V)
 * LED: CCP1(RB3) 照度比較用 RB2 
 * 
 * Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON _WDT_OFF
 *        _LVP_OFF _MCLRE_OFF _INTRC_OSC_NOCLKOUT
 * 言語 MikroC v6.2
 */
 
 //関数プロトタイプ宣言
 void my_Pwm_Change_Duty(unsigned int duty_ratio);
 //関数プロトタイプ宣言終わり 
 
 //自作my_Pwm関数の使用例
 //発光ダイオード(LED)の明るさを徐々に変える
 void main() { //メインプログラム
     //利用変数の定義
     unsigned int i;
     //利用変数の定義終わり
 
     //マイコンの初期化
     PORTB = 0b00000000; //PORTBの中身をきれいにする
     TRISB = 0b00000000; //PORTBを8つ全て0:出力に設定
     Pwm_Init(5000); //PWM機能の初期化
     //マイコンの初期化終わり
     
     PORTB.F2 = 1; //照度比較用LED ON
 
     Pwm_Start(); //PWM機能の起動
     do { //doとwhileの間を繰り返す
         for(i = 0; i < 1024; i++) {
             my_Pwm_Change_Duty(i); //LEDの明るさを徐々に変える
             Delay_ms(20); //0.02秒(=20ミリ秒)待つ
         }
     } while(1); //doとwhileの間を繰り返す
 } //メインプログラム終わり
 
 //自作my_Pwm関数
 //【参考資料】
 //後関氏「CCPのPWMモードでの使い方」
 //http://picfun.com/pic18.html
 //久世氏「ハードウェアのPWM機能を使って、数値を変える」
 //http://www.kuze.jp/sfc/2006_sp/page17.html
 
 void my_Pwm_Change_Duty(unsigned int duty_ratio) {
     // duty_ratio:0〜1023 0:Min 1023:Max
     //duty_ratio上位8ビットをCCPR1Lレジスタへ格納 
     CCPR1L = duty_ratio >> 2;
    //08/02/03修正始め
    //duty値の下位2ビットを格納するのはCCP1CONレジスタの6,7ビットではなく
    //4,5ビットであるので修正した。
    //【参考】後関氏「CCPのPWMモードでの使い方」
    //http://picfun.com/pic18.html
    //duty_ratio下位2ビットをCCP1CONレジスタの4,5ビットへ格納
    CCP1CON.F4 =  duty_ratio & 0b00000001;
    CCP1CON.F5 = (duty_ratio & 0b00000010) >> 1;
    
    //duty_ratio下位2ビットをCCP1CONレジスタの6,7ビットへ格納
    //CCP1CON.F6 = duty_ratio & 0b00000001;
    //CCP1CON.F7 = (duty_ratio & 0b00000010) >> 1;
    //08/02/03修正終わり
 }
 //自作my_Pwm関数終わり

★この情報は役に立ちましたか?
#vote(はい[33],普通[8],いいえ[27])
- CCP1CONレジスタの6,7ビットなんて無意味じゃないの?? -- [[PWM]] &new{2007-02-12 (月) 12:29:20};
- これって久世氏の間違い箇所まで同じなんですか? 滑稽ですね -- [[パクリ]] &new{2008-02-02 (土) 20:00:49};
- my_Pwm_Change_Duty()関数に間違いがありますか。ご指摘ありがとうございます。勉強して修正しようと思います。 -- [[PICとMikroC]] &new{2008-02-03 (日) 11:31:01};
- duty値の下位2ビットを格納するのはCCP1CONレジスタの6,7ビットではなく、4,5ビットですね。失礼しました。08/2/3プログラムを修正しました。 -- [[PICとMikroC]] &new{2008-02-03 (日) 16:07:08};
- PWM_Init(14行目)のところがビルドするとエラーがでるのですが・・ --  &new{2009-06-27 (土) 23:19:05};
- 2015-10-6  xiaozhengm http://www.louisvuitton-lvoutlet.me  http://www.louisvuitton.net.co  http://www.michaelkors-outletonlines.in.net  http://www.ralph-lauren.me.uk  http://www.michael-korsoutlets.eu.com  http://www.true-religion-outlet.in.net  http://www.coach-factoryoutlet.in.net  http://www.christianlouboutinoff.us   http://www.coach-factoryoutlet.com.co  http://www.coachoutlet-storeonline.in.net  http://www.hermes-birkin.us  http://www.michael-korshandbags.net.co  http://www.louis-vuittonhandbags.us  http://www.Quality-Outlet.com  http://www.cheaplouisvuittonhandbags.org  http://www.officialcoachfactoryoutlet.eu.com  http://www.jordan8.net  http://www.hollisteruksale.me.uk  http://www.coachoutlet-storeonline.us.com  http://www.cheap-tomsoutlet.us  http://www.uggbootoutlet.in.net  http://www.coach-factory-outlet-online.us.com  http://www.louis-vuittonoutlet.us.com  http://www.ralphlauren-uk.me.uk  http://www.uggsoutlet.in.net  http://www.jordan4.net  http://www.michaelkors-outlet.name  http://www.authenticlouisvuittonhandbags.net  http://uggsaustralia.officialus.net  http://www.canadagoose-outlet.us.com  http://www.christianlouboutinsell.net  http://www.coach-factoryoutlet.cc  http://www.outlet-toms.cc  http://www.ugg-boots.eu  http://www.cheap--nfljerseys.us.com  http://www.rayban-sunglasses.com.co  http://www.coach-outlet.us.com  http://ugg.fairskinmen.com  http://www.louisvuittonhandbags.name  http://www.coachoutlet-coachfactory.us.com  http://www.mont-blancpens.name  http://www.michaelkorsoutletclearance.in.net  http://www.michaelkorsoutletonline.cc  http://www.michael-korshandbags.us  http://www.canadagoosejackets.org.uk  http://timberlandboots.hugeoff.net  http://www.guccioutlet.com.so  http://www.sunglass-outlet.us  http://www.coachfactoryoutletonline.eu.com  http://www.outlet-celine.com  http://www.coach-factoryoutlet.eu.com  http://www.louisvuittonoutlet.net.co  http://burberryoutlet.outoff.com.co  http://www.oakleysunglasses-sale.in.net  http://www.cheapuggssale.in.net  http://www.ugg-boots.eu.com  http://www.uggboots-sale.in.net  http://www.louisvuitton-handbags.com.co  http://www.ugg-boots.net.co  http://www.toryburch-outletsale.in.net  http://www.jordan3.net  http://www.louisvuittonoutlet.name  http://www.louisvuittonhandbags.net.co  http://www.cheap-jordans.us.com  http://www.truereligionjeans-outlet.in.net  http://www.kobeshoes.org  http://www.abercrombiefitchstore.com  http://www.fitflops.org  http://www.abercrombie-andfitch.cc  http://www.michaelkorsoutletshopping.us.com  http://www.lebronjames-shoes.name  http://www.michaelkors-outlet.com.co  http://www.michaelkorshandbag.org.uk  http://www.coachfactoryoutletus.in.net  http://www.canadagoose.com.co  http://www.michaelkorshandbags.name  http://www.michaelkorsoutletonline.name  http://www.abercrombiefitchus.com  http://www.louisvuitton-outletstores.org  http://www.louisvuitton-macys.com  http://www.louisvuittonuk.me.uk  http://www.toms--shoes.com  http://www.hollisters.cc  http://www.louis-vuitton-handbags.us.com  http://www.louis--vuitton.us  http://www.michaelkors-uk.me.uk  http://www.michaelkors-outlet.cc  http://www.abercrombies.cc  http://www.nike-airmax.org.uk  http://michaelkors.aphidsymposium.org  http://www.coach-factoryoutlet.us.com  http://www.michaelkorsoutletvip.in.net  http://www.michael-korshandbag.us.com  http://www.ralplaurenuk.me.uk  http://www.louisvuitton.us.com   http://www.michaelkorsbag.org.uk  http://www.michael-kors-bags.co.uk  http://www.louis-vuitton.us.org  http://www.abercrombieandfitch.net.co  http://www.michaelkorsoutlet-online.eu.com  http://www.michael--korsoutlet.us.com  http://www.michaelkorshandbag-uk.co.uk  http://www.jordan13.org  http://www.rayban-sunglassesuk.co.uk  http://www.hollisteruk.in.net  http://www.michaelkors-outletonline.eu.com  http://www.louisvuitton-inc.com  http://www.louisvuitton-outlet.name  http://www.jordan6.net  http://uggboots.uggaustralia.de.com  http://www.niketrainers.com.co  http://www.jordans.in.net  -- [[xiaozhengm]] &new{2015-10-06 (火) 19:31:16};

#comment_nospam