1. 连接isp下载线
2. 打开avr fighter
a” 如下界面,在熔丝位那框架,点击“读取”
(注:上图是默认的熔丝位)
b.单击鼠标,把熔丝位改为下图(仅是JTAGEN 和CKOPT 为0),单击写入:
这样就能使用外部晶振啦~
修改过一次下次就不用修改了,但注意这是外部晶振,而不是RC振荡器,还有不要乱改熔丝位,乱改会锁芯片的。
第二步,使用gcc自带延时函数及设置avrstudio
例:
#include
//us级别的延时函数
voidDelayus(unsigned int lus)
{
while(lus--)
{
_delay_loop_2(3); //_delay_loop_2(1)是延时4个时钟周期,参数为4则延时16
//个时钟周期,本实验用12M晶体,则12个时钟周期为12/12=1us
}
}
//ms级别的延时函数
voidDelayms(unsigned int lms)
{
while(lms--)
{
Delayus(1000); //延时1ms
}
}
Avr studio设置:
在avr studio 菜单栏上
单击ConfigurationOptions
要正确使用它们是有如下条件的:
1. 首先,你要正确定义你的 F_CPU 的值,也就是你的AVR单片机实际的频率。否则延时不准,这个就是Frequency的值。
2. 你在编译时一定要打开优化,Makefile中OPT 不要选 0 ,如果AVR_studio不要选O0 。要不然就会出现# warning"Compiler optimizations disabled; functions from
====================================================================================================
-00 无优化。
-01 减少代码尺寸和执行时间,不进行需要大量编译时间的优化。
-O2 几乎执行所有优化,而不考虑代码尺寸和执行时间。
-O3 执行-O2所有的优化,以及内联函数,重命名寄存器的优化。
-OS 针对尺寸的优化。执行所有-O2优化而不增加代码尺寸。
====================================================================================================
复选框:
1. 所有char认为是unsined char
2.所有bitfields 认为是unsigned
3.定义结构体时,连续存储
4.定义枚举类型时,使用最大需要的存储空间 (3,4两项真是多余,不选中肯定出错)
一般选-OS优化,复选框全选。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』