アマチュア無線や電子工作,バイクの話などを徒然なるままに書き散らすメモ程度のblogです.


by jq1ocr

_delay_ms のずれ

F_CPU を define したり,ヒューズビットの設定を確認したのですが,それでも _delay_ms がずいぶん長くなってる気がしました.オシロで確認したところ,そのままだと約8倍の長さになっていたので,_delay_ms(1) を delay_us(125) にしたところ大体 1ms になりました.
d0106518_213237.jpg
時間軸は 500μs/div

ちなみに _delay_ms(0.125) も同じ duration になり,また生成されるコード長も同じでした.

あくまで対症療法なので気分がよろしくありませんが,PIC でも同じようなことしてたなぁ.苦笑
【追記】F_CPU と CKDIV8 を設定して対応する方法をこちらに書きました.
[PR]
Commented by BWT at 2010-06-22 08:27 x
FUSEビットのDIV8は関係ないかな?
内部クロックを8分周オプションです。
あと、ソース中にクロックを指定する行があったと思います。
Commented by jq1ocr at 2010-06-22 10:52
関係ありそうですね.ちょうど8だし.ソースのクロックを指定する行ってのは F_CPU ですが,ここはやってもやらなくても同じでしたので,ヒューズをもう一度確認してみます.
by jq1ocr | 2010-06-22 00:14 | マイコン・電子工作 | Comments(2)