検索
AND検索
OR検索
トップ
|
リロード
|
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
1024分解能ハードPWM制御自作関数 をテンプレートにして作成
★トップ(目次)ページへ
★情報交換掲示板
08/08/14設置
今日の4件
PICとMikroC
(15)
発光ダイオード(LED)の明るさを変える
(1)
LCD表示法(24FJ64)
(1)
インターバルタイマ(TMR0割込み利用)
(1)
最新の15件
2023-09-19
RecentDeleted
2023-09-12
I2C通信LCD表示法(16F1827 XC8)
2023-08-23
XC8:コンフィグレーションワード記述書式について
2023-07-16
MikroCの特徴
スリープ(PICの消費電力を最小に)
2023-07-07
ライントレースカー(基本機能のみ搭載)
2023-07-06
PIC-PICの通信(USART)
2023-07-04
16F1827のconfig設定
PICとMikroC
2023-06-06
A/D値でLED点滅間隔変更(12F683)
2023-05-29
LEDの明るさを変える(PWM)(16F886)
2023-05-20
1024分解能ハードPWM制御自作関数
2023-05-18
LEDの明るさを変える(PWM)(12F683)
2023-04-26
モータの前転・後転
2023-03-18
MPLAB Xのデバッガーの使用法
#amazon(4798109223)
Total:0/Today:0
開始行:
閲覧総計:&counter(); (本日:&counter(today); 昨日...
~
*1024分解能ハードPWM制御自作関数 [#ef01afa1]
MikroCに用意されているPWM関数はPWM分解能が256である。
しかし、PIC16系に組み込まれているハードウエアPWM機能は10...
である。
ハードの性能を100%引き出す、1024分解能のPWM制御を実現す...
を作成したので紹介する。
(発光ダイオード(LED)の明るさを徐々に変えるプログラムで稼...
注)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,...
/**
* 1024分割制御 自作Pwm関数
* 発光ダイオード(LED)の明るさを徐々に変える
*
* PIC 16F628A
* 発信器:内臓4MHz
* 電源:乾電池3本(4.5V)
* LED: CCP1(RB3) 照度比較用 RB2
*
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON ...
* _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...
//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(はい[57],普通[31],いいえ[55])
- CCP1CONレジスタの6,7ビットなんて無意味じゃないの?? --...
- これって久世氏の間違い箇所まで同じなんですか? 滑稽で...
- my_Pwm_Change_Duty()関数に間違いがありますか。ご指摘あ...
- duty値の下位2ビットを格納するのはCCP1CONレジスタの6,7ビ...
- PWM_Init(14行目)のところがビルドするとエラーがでるの...
- 2015-10-6 xiaozhengm http://www.louisvuitton-lvoutlet....
- Centre http://www.michaelkorsoutlets-online.us.com/ htt...
- http://www.cybermondaydeals.in.net http://www.michaelk...
- http://www.nike-shoes.in.net/ http://www.bostoncelticsj...
- 20190109 junda http://www.coach-factory-outlet-online.u...
- http://www.outletsmichaelkors.us.com http://www.christi...
- chenyingying2017106 http://www.oakley-sunglasses.net.co...
- http://www.nike-id.us/ nike id http://www.katespadeo...
- http://www.cheapnikenfljerseyswholesale.us http://www.u...
- http://www.cheapnikenfljerseyswholesale.us http://www.u...
- http://www.giuseppezanottioutlet.us.com http://www.cana...
- جيب رانج ...
- http://www.yeezyshoes.us.com/ Yeezy Shoes http://www.ye...
- [[stripchat:https://stripchat.us.com]] -- [[stripchat]]...
- [[stripchat:https://de.stripchat.eu.com]] -- [[stripcha...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/2022/12/hyundai-venue.html ht...
- https://www.maalomsta.com/2022/12/toyota-rush.html http...
#comment_nospam
終了行:
閲覧総計:&counter(); (本日:&counter(today); 昨日...
~
*1024分解能ハードPWM制御自作関数 [#ef01afa1]
MikroCに用意されているPWM関数はPWM分解能が256である。
しかし、PIC16系に組み込まれているハードウエアPWM機能は10...
である。
ハードの性能を100%引き出す、1024分解能のPWM制御を実現す...
を作成したので紹介する。
(発光ダイオード(LED)の明るさを徐々に変えるプログラムで稼...
注)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,...
/**
* 1024分割制御 自作Pwm関数
* 発光ダイオード(LED)の明るさを徐々に変える
*
* PIC 16F628A
* 発信器:内臓4MHz
* 電源:乾電池3本(4.5V)
* LED: CCP1(RB3) 照度比較用 RB2
*
* Device Flags: _BODEN_OFF _BOREN_OFF _CP_OFF _PWRTE_ON ...
* _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...
//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(はい[57],普通[31],いいえ[55])
- CCP1CONレジスタの6,7ビットなんて無意味じゃないの?? --...
- これって久世氏の間違い箇所まで同じなんですか? 滑稽で...
- my_Pwm_Change_Duty()関数に間違いがありますか。ご指摘あ...
- duty値の下位2ビットを格納するのはCCP1CONレジスタの6,7ビ...
- PWM_Init(14行目)のところがビルドするとエラーがでるの...
- 2015-10-6 xiaozhengm http://www.louisvuitton-lvoutlet....
- Centre http://www.michaelkorsoutlets-online.us.com/ htt...
- http://www.cybermondaydeals.in.net http://www.michaelk...
- http://www.nike-shoes.in.net/ http://www.bostoncelticsj...
- 20190109 junda http://www.coach-factory-outlet-online.u...
- http://www.outletsmichaelkors.us.com http://www.christi...
- chenyingying2017106 http://www.oakley-sunglasses.net.co...
- http://www.nike-id.us/ nike id http://www.katespadeo...
- http://www.cheapnikenfljerseyswholesale.us http://www.u...
- http://www.cheapnikenfljerseyswholesale.us http://www.u...
- http://www.giuseppezanottioutlet.us.com http://www.cana...
- جيب رانج ...
- http://www.yeezyshoes.us.com/ Yeezy Shoes http://www.ye...
- [[stripchat:https://stripchat.us.com]] -- [[stripchat]]...
- [[stripchat:https://de.stripchat.eu.com]] -- [[stripcha...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/ -- [[معل&#...
- https://www.maalomsta.com/2022/12/hyundai-venue.html ht...
- https://www.maalomsta.com/2022/12/toyota-rush.html http...
#comment_nospam
ページ名: