PWMを試すのにPIC12F683でやってみようと「pic12f683 pwm」で検索したらいい感じのページが見つかったので試してみた。
「PWM機能を使ってスピーカを鳴らす(動作確認:単音を出してみる)(PIC12F683)」
このページ、説明が細かくてわかりやすい。
回路図があったけど、LEDをチカチカさせていた回路のLEDの代わりにスピーカー(普通のスピーカーも圧電スピーカーも試した)を付けてみたら音が鳴ったので、そのまま使った。
(最初、LEDのままで動かしたら、いくらCCPR1L
の値を変化させてもLEDの明るさが肉眼で違いがわからなかった。「PWMが動いてないのか?」とオシロスコープで見たらPWMは動いているのがわかったので、とりあえずスピーカーを付けたら音が出た。)
#include <htc.h> #ifndef _XTAL_FREQ #define _XTAL_FREQ 4000000 #endif __CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & BORDIS); void main(void) { OSCCON = 0x06 << 4; // 4MHz CMCON0 = 0x07; GPIO = 0x00; TRISIO = 0; ANSEL = 0; // PWMの設定 PR2 = 239; CCPR1L = 119; CCP1CON = 0x0C; T2CON = 0x07; TMR2 = 0; // 無限ループ while (1) { } }