スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--) | スポンサー広告 | トラックバック(-) | コメント(-)

PIC12F1822をTimer1 だけ低クロックで使う方法

例えば,Timer1をかなりゆっくりした周期で回したいと思ったとき。
下のコードみたいに書いているのですが,
if文でDelay増やすのをなんとかできないかなと思って
Timer1だけ別のClockを使う事を思いついたのです。
12F1822には32kHzの内蔵Clockが別に入っているので出来んじゃない?と。

知っている人には当たり前すぎる情報かもしれませんが,
ハマったのでメモしておきます。

void interrupt isr(void) {
    if (TMR1IF == 1) {
    TMR1H = 0x3C;
    TMR1L = 0xd5; //3caf = 50msec by 32MHz
    CLRWDT();

    if (Timer1Delay > 0) {
        Timer1Delay--;
        TEST_LED = Timer1Delay % 20 / 10;  //0.5秒ごとに点滅
    } else {
        Timer1_Function(); //TImer1割り込みでやらせたい機能のCall
        Timer1Delay = DELAY;
    }
    TMR1IF = 0;
}

さて,結果は。
read more...
スポンサーサイト

2012/07/25(水) | Timer1利用 | トラックバック(0) | コメント(0)

 |  HOME  | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。