2010年12月3日金曜日

OpenTimer0()

Include: timers.h
Prototype: void WriteTimer0( unsigned int timer );

タイマレジスタに書き込む値の算出
例:3ms必要な時
40MHz 16ビット プリスケーラ1:1
1/40,000,000X4 = 0.1μS----1命令サイクル
3X1000/0.1=30,000---------必要な回数
256X256-30,000=35,536
WriteTimer0( 35536 );

例:10ms必要な時
20MHz 16ビット プリスケーラ1:8
1/20,000,000X4 = 0.2μS----1命令サイクル
0.2X8=1.6μS-------------プリスケーラで8倍に
10X1000/1.6=6,250---------必要な回数
256X256-6,250=59,286
WriteTimer0( 59286 );

59,286からスタートして256X256(65,536)になるまで、カウントした時に割り込みが発生

0 件のコメント:

コメントを投稿