PIC18F14K50 : Lチカ
始めたばかりのPIC18F14K50で定番のLチカしてみる.
Arduino経験者としては, Lチカといったらdelay
関数の一択.
しかし, PICのC言語についてくる__delay_ms()
, __delay_us()
の元となってる
_delay()
はインライン関数で
あるため引数に変数を使えないとか,
指定する数値に上限があるとか,
色々使いにくいため, 使いやすいように工夫する.
といっても, ただwhile
文を使うだけ.
// delay関数
void delay(int num)
{
while(--num > 0) __delay_us(1000);
}
あと, __delay_ms()
, __delay_us()
を使うときは,
#define _XTAL_FREQ 48000000
のように, クロック周波数を定義してあげる必要がある. この例では12MHzのセラミック発振子を4xPLLして48MHz(最大クロック)としている.
ソースコード全体はこちら.
ついでに
予定ではTimer0,1,2を使ったLチカも書くつもりだったのが, ソースコードだけGistに置いておく. 参考にどうぞ.