閲覧総計:&counter(); (本日:&counter(today); 昨日:&counter(yesterday);)~ *LEDの明るさを変える(PWM)(16F1827 XC8) [#lf796826] PWM機能の使い方を確認する目的で、PWM信号のdutyを変更し、LEDの明るさを 変えるプログラムを作成した。 新型の16F1XXXシリーズは、旧16Fシリーズと比較してPWM機能がとても高機能に なっているが、その分操作法が風雑になっている。 今回はCCP(RA3)からPWM信号を発振する。Timer2を使用する。 【ポイント】 ・16F1827のPWM機能に関する解説は↓こちらのページに詳しい http://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/16F1827/memo.htm PICの動かせ方入門「16F1827覚書」 |&attachref(TS3V0008.JPG,zoom,200x300,button){新しい写真添付};|&attachref(16F1827ピン配置.JPG,zoom,200x250,button){新しい写真添付};| /* PWM機能の確認(LEDの明るさを徐々に変える) * PIC16F1827 * XC8 v1.20 * LED:RA2,RA3 */ #include <xc.h> #pragma config FOSC = INTOSC, WDTE = OFF, BOREN = OFF, IESO = OFF, FCMEN = OFF #pragma config PLLEN = OFF, STVREN = OFF, LVP = OFF //__delay_us(), __delay_ms()へのクロック情報の設定 #define _XTAL_FREQ 8000000 //PICのクロックをHzで設定(8MHz) int main(void) { //使用変数の定義 unsigned int dutycycle; //0〜65535 //PICの初期設定 OSCCON = 0b01110000; //PLL:OFF, 内部クロック8MHzで駆動 ANSELA = 0b00000000; //RA4(AN4)-RA0(AN0)は全て0:デジタルI/Oとする TRISA = 0b00000000; //PORTA全てを0:出力に設定 PORTA = 0b00000000; //PORTAの中身をきれいにする //CCP3(RA3)へPWM信号を出力(Timer2使用) //PWM各種設定値の計算 //クロック8MHz Tosc = 0.125μsの時 //3000HzのPWM信号を発信する場合 // //周期 = 3000Hz = 1/3000 = 333μs //(PR2の範囲は0〜255) //Timer2のプリスケール 4 //周期 = (PR2 + 1) * 4 * Tosc * (Timer2のプリスケール値)であるから //PR2 = (周期 / (4 * Tosc * (Timer2のプリスケール値)) - 1 //PR2 = (333 / (4 * 0.125 * 4)) - 1 //PR2 = 165 // //PWM分解能 DC1(Max)は //duty = DC1 * Tosc * (Timer2のプリスケール値)であるから //DC1 = duty / (Tosc * (Timer2のプリスケール値)) //DC1(Max) = 333 / (0.125 * 4) //DC1(Max) = 666 //PWM各種条件設定 //CCP3(RA3)へPWM信号を出力 CCPTMRS = 0b00000000; //CCP3はTimer2使用に設定 CCP3CON = 0b00001100; //PWMモードを使用する T2CON = 0b00000001; ////プリスケール 4に設定 PR2 = 165; //PWM周波数3000Hzに設定 TMR2 = 0; //Timer2カウンターをクリアー T2CONbits.TMR2ON = 1; //Timer2 ON //メイン処理 LATAbits.LATA2 = 1; //RA2:パワーオンを示すLED点灯,照度比較用LED while(1) { for(dutycycle = 0; dutycycle < 666; dutycycle++) { //3000Hz時の分解能は666 //LEDの明るさを徐々に変える //dutycycleの変更 //解像度10ビットのうち上位8ビットをCCPR3Lレジスタに格納 CCPR3L = dutycycle >> 2; //解像度10ビットのうち下位2ビットをCCP3CONレジスタの4,5ビットへ格納 CCP3CON |= (dutycycle & 0x0003) << 4; __delay_ms(10); //0.01秒(=10ミリ秒)待つ } } } ★この情報は役に立ちましたか? #vote(はい[5556],普通[46],いいえ[57]) [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم بث مباشر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم من القاهره>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم مصر>https://www.youtube.com/watch?v=Msonh3zr26E]] [[اذاعة القران الكريم يوتيوب>https://www.youtube.com/watch?v=Msonh3zr26E]] -- [[be1ch]] &new{2019-03-16 (土) 08:38:09}; #comment_nospam