基于WINAVR + avr studio 4 使用外部晶振时及延时可能遇到的问题( By-炬本)
2012-11-06 10:32
387 查看
第一步,使用外部晶振
1. 连接isp下载线
2. 打开avr fighter
a” 如下界面,在熔丝位那框架,点击“读取”
(注:上图是默认的熔丝位)
b.单击鼠标,把熔丝位改为下图(仅是JTAGEN 和CKOPT 为0),单击写入:
这样就能使用外部晶振啦~
修改过一次下次就不用修改了,但注意这是外部晶振,而不是RC振荡器,还有不要乱改熔丝位,乱改会锁芯片的。
第二步,使用gcc自带延时函数及设置avrstudio
例:
#include<util/delay.h> //声明
//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 <util/delay.h>won't work as designed"编译警告,且延时失准。
====================================================================================================
-00 无优化。
-01 减少代码尺寸和执行时间,不进行需要大量编译时间的优化。
-O2 几乎执行所有优化,而不考虑代码尺寸和执行时间。
-O3 执行-O2所有的优化,以及内联函数,重命名寄存器的优化。
-OS 针对尺寸的优化。执行所有-O2优化而不增加代码尺寸。
====================================================================================================
复选框:
1. 所有char认为是unsined char
2.所有bitfields 认为是unsigned
3.定义结构体时,连续存储
4.定义枚举类型时,使用最大需要的存储空间 (3,4两项真是多余,不选中肯定出错)
一般选-OS优化,复选框全选。
2012/7/4
1. 连接isp下载线
2. 打开avr fighter
a” 如下界面,在熔丝位那框架,点击“读取”
(注:上图是默认的熔丝位)
b.单击鼠标,把熔丝位改为下图(仅是JTAGEN 和CKOPT 为0),单击写入:
这样就能使用外部晶振啦~
修改过一次下次就不用修改了,但注意这是外部晶振,而不是RC振荡器,还有不要乱改熔丝位,乱改会锁芯片的。
第二步,使用gcc自带延时函数及设置avrstudio
例:
#include<util/delay.h> //声明
//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 <util/delay.h>won't work as designed"编译警告,且延时失准。
====================================================================================================
-00 无优化。
-01 减少代码尺寸和执行时间,不进行需要大量编译时间的优化。
-O2 几乎执行所有优化,而不考虑代码尺寸和执行时间。
-O3 执行-O2所有的优化,以及内联函数,重命名寄存器的优化。
-OS 针对尺寸的优化。执行所有-O2优化而不增加代码尺寸。
====================================================================================================
复选框:
1. 所有char认为是unsined char
2.所有bitfields 认为是unsigned
3.定义结构体时,连续存储
4.定义枚举类型时,使用最大需要的存储空间 (3,4两项真是多余,不选中肯定出错)
一般选-OS优化,复选框全选。
2012/7/4
相关文章推荐
- (原)使用 memcache 使用过程中可能遇到的问题
- 基于项目中遇到的技术问题,谈谈SharedPreferences的使用的注意问题
- minicom使用中可能遇到的问题及解决办法
- ionic 里使用 iframe 可能遇到的问题
- iOS开发 Block的使用方法和规范,以及可能遇到的问题
- 使用CMake + MinGW + Eclipse 开发OpenCV --编译,使用以及可能遇到的问题详解
- 【踩坑】PHP中关于运算符优先级使用中可能遇到的问题
- IG NZT 安装使用过程中可能遇到的问题解决办法
- ubuntu下git的使用流程,包括可能遇到的问题和解决方法。
- intel fortran 各类函数库的使用方法及可能遇到的问题解决
- 使用Sqoop将数据从Hive导入MySQL可能遇到的问题
- 转帖:使用BDC连接MySql可能遇到的问题
- FileZilla 使用过程中可能遇到问题 及 解决办法
- js使用 soapclient.js 访问webservice遇到问题" field SOAPAction is not allowed by Access-Control"
- Windows下使用python-nmap库可能遇到的问题及解决方法(续)
- 使用BDC连接MySql可能遇到的问题
- 苹果p12文件--一个苹果证书怎么多次使用(蛋疼,这些问题只有和其他企业合作才会遇到,别人的账号不可能给你,蛋疼....)
- 在 appclient 中使用注射 EJB (injected EJB) 可能遇到的问题
- [caffe使用]caffe使用中可能遇到的问题总结
- Endnote 使用可能遇到的问题