今天偶然的機會,因為定時器老是不對勁,而把晶振給拔了突然發(fā)現(xiàn)對程序的運行沒有任何影響,這次我才想起來atmege8是不是有內部晶振哦。
一查果然。。。。。。修改的方法是改熔絲位
時鐘源 啟動延時 熔絲
外部時鐘 6 CK + 0 ms CKSEL=0000 SUT="00"
外部時鐘 6 CK + 4.1 ms CKSEL=0000 SUT="01"
外部時鐘 6 CK + 65 ms CKSEL="0000" SUT="10"
內部RC振蕩1MHZ 6 CK + 0 ms CKSEL="0001" SUT="00"
內部RC振蕩1MHZ 6 CK + 4.1 ms CKSEL="0001" SUT="01"
內部RC振蕩1MHZ1 6 CK + 65 ms CKSEL="0001" SUT="10"
內部RC振蕩2MHZ 6 CK + 0 ms CKSEL="0010" SUT="00"
內部RC振蕩2MHZ 6 CK + 4.1 ms CKSEL="0010" SUT="01"
內部RC振蕩2MHZ 6 CK + 65 ms CKSEL="0010" SUT="10"
內部RC振蕩4MHZ 6 CK + 0 ms CKSEL="0011" SUT="00"
內部RC振蕩4MHZ 6 CK + 4.1 ms CKSEL="0011" SUT="01"
內部RC振蕩4MHZ 6 CK + 65 ms CKSEL="0011" SUT="10"
內部RC振蕩8MHZ 6 CK + 0 ms CKSEL="0100" SUT="00"
內部RC振蕩8MHZ 6 CK + 4.1 ms CKSEL="0100" SUT="01"
內部RC振蕩8MHZ 6 CK + 65 ms CKSEL=0100 SUT="10"
外部RC振蕩≤0.9MHZ 18 CK + 0 ms CKSEL="0101" SUT="00"
外部RC振蕩≤0.9MHZ 18 CK + 4.1 ms CKSEL="0101" SUT="01"
外部RC振蕩≤0.9MHZ 18 CK + 65 ms CKSEL="0101" SUT="10"
外部RC振蕩≤0.9MHZ 6 CK + 4.1 ms CKSEL="0101" SUT="11"
外部RC振蕩0.9-3.0MHZ 18 CK + 0 ms CKSEL="0110" SUT="00"
外部RC振蕩0.9-3.0MHZ 18 CK + 4.1 ms CKSEL="0110" SUT="01"
外部RC振蕩0.9-3.0MHZ 18 CK + 65 ms CKSEL="0110" SUT="10"
外部RC振蕩0.9-3.0MHZ 6 CK + 4.1 ms CKSEL=0110 SUT="11"
外部RC振蕩3.0-8.0MHZ 18 CK + 0 ms CKSEL=0111 SUT="00"
外部RC振蕩3.0-8.0MHZ 18 CK + 4.1 ms CKSEL="0111" SUT="01"
外部RC振蕩3.0-8.0MHZ 18 CK + 65 ms CKSEL=0111 SUT="10"
外部RC振蕩3.0-8.0MHZ 6 CK + 4.1 ms CKSEL="0111" SUT="11"
外部RC振蕩8.0-12.0MHZ 18 CK + 0 ms CKSEL=1000 SUT="00"
外部RC振蕩8.0-12.0MHZ 18 CK + 4.1 ms CKSEL="1000" SUT="01"
外部RC振蕩8.0-12.0MHZ 18 CK + 65 ms CKSEL="1000" SUT="10"
外部RC振蕩8.0-12.0MHZ 6 CK + 4.1 ms CKSEL="1000" SUT="11"
低頻晶振(32.768KHZ) 1K CK + 4.1 ms CKSEL="1001" SUT="00"
低頻晶振(32.768KHZ) 1K CK + 65 ms CKSEL="1001" SUT="01"
低頻晶振(32.768KHZ) 32K CK + 65 ms CKSEL="1001" SUT="10"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 258 CK + 4.1 ms CKSEL="1010" SUT="00"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 258 CK + 65 ms CKSEL="1010" SUT="01"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 1K CK + 0 ms CKSEL=1010 SUT="10"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 1K CK + 4.1 ms CKSEL="1010" SUT="11"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 1K CK + 65 ms CKSEL="1011" SUT="00"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 16K CK + 0 ms CKSEL=1011 SUT="01"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 16K CK + 4.1ms CKSEL="1011" SUT="10"
低頻石英/陶瓷振蕩器(0.4-0.9MHZ) 16K CK + 65ms CKSEL="1011" SUT="11"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 258 CK + 4.1 ms CKSEL="1100" SUT="00"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 258 CK + 65 ms CKSEL="1100" SUT="01"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 1K CK + 0 ms CKSEL=1100 SUT="10"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 1K CK + 4.1 ms CKSEL="1100" SUT="11"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 1K CK + 65 ms CKSEL="1101" SUT="00"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 16K CK + 0 ms CKSEL="1101" SUT="01"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 16K CK + 4.1ms CKSEL="1101" SUT="10"
中頻石英/陶瓷振蕩器(0.9-3.0MHZ) 16K CK + 65ms CKSEL="1101" SUT="11"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 258 CK + 4.1 ms CKSEL="111"0 SUT="00"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 258 CK + 65 ms CKSEL="111"0 SUT="01"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 1K CK + 0 ms CKSEL="111"0 SUT="10"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 1K CK + 4.1 ms CKSEL="111"0 SUT="11"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 1K CK + 65 ms CKSEL=1111 SUT="00"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 16K CK + 0 ms CKSEL="111"1 SUT="01"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 16K CK + 4.1ms CKSEL="111"1 SUT="10"
高頻石英/陶瓷振蕩器(3.0-8.0MHZ) 16K CK + 65ms CKSEL="111"1 SUT="11"
這是全部的熔絲位關于晶振的選擇,我好不容易發(fā)現(xiàn)了問題所在,結果一激動還悲劇的設置錯了,設置成了外部時鐘方式。。。。。。
這就是傳說中的鎖死,不過這是誤解,avr不存在鎖死的概念,我原來用的飛思卡爾xs128有,真有。。
avr的鎖死只是所謂的你現(xiàn)在的硬件無法滿足系統(tǒng)要運行所需的條件罷了,比如這里我不小心選擇了外部時鐘,這時我插入ISP,已經(jīng)沒無法使用了,但我用功率信號發(fā)生器給了一個1M的時鐘到atmege8 第9腳,再插入ISP,馬上就可以了。。。。。
推薦一篇文章《avr熔絲全攻略》,可以看看。。。