今天偶然的机会,因为定时器老是不对劲,而把晶振给拔了突然发现对程序的运行没有任何影响,这次我才想起来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"
这是全部的熔丝位关于晶振的选择,我好不容易发现了问题所在,结果一激动还悲剧的设置错了,设置成了外部时钟方式。。。。。。
这就是传说中的锁死,不过这是误解,avr不存在锁死的概念,我原来用的飞思卡尔xs128有,真有。。
avr的锁死只是所谓的你现在的硬件无法满足系统要运行所需的条件罢了,比如这里我不小心选择了外部时钟,这时我插入ISP,已经没无法使用了,但我用功率信号发生器给了一个1M的时钟到atmege8 第9脚,再插入ISP,马上就可以了。。。。。
推荐一篇文章《avr熔丝全攻略》,可以看看。。。