AVRマイコンでキャラクタLCDに時間を表示する(その2)

AVRマイコンでキャラクタLCDに時間を表示する(その1)」の、クロックの精度を上げたいと思います。

内蔵クロックから外部クロックに変更しますが、使うのは4MHzのセラロックにします。

FUSEビットを書き換えますが、外部クロックの設定にしてしまうと、内蔵クロックでは動作しなくなります。外部クロックをつけていないとFlashの書き換えもできなくなりますので注意が必要です。

まずは、時計プログラムを落としてきます。

# git clone https://github.com/takkete/bread.git
# cd bread/mcu/avr/attiny2313/device/clock

外部クロック4MHzを使うので、ビルドオプション-DF_CPU=1000000ULを4000000に変更して、ビルドします。

# sed 's/CPU=1/CPU=4/' -i makefile
# make

焼きます。

# make write

最後にFUSEビットの変更をします。

4MHzなので、
avrdude -p t2313 -c linuxgpio -U lfuse:w:0xEC:m
を実行します。

~# avrdude -p t2313 -c linuxgpio -U lfuse:w:0xEC:m

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e910a
avrdude: reading input file "0xEC"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xEC:
avrdude: load data lfuse data from input file 0xEC:
avrdude: input file 0xEC contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK (E:FF, H:DF, L:EC)

avrdude done.  Thank you.

# 

動かしてストップウォッチと比べてみます。

external-clock-001
ストップウォッチは、25:49、自作時計は、25:41。8秒もずれています。また、調べることが増えてしまいました。

コメント

  1. […] ← AVRマイコンでキャラクタLCDに時間を表示する(その2) […]

タイトルとURLをコピーしました