AVR单片机
pang123hui
已不再是大一
展开
-
跨入AVR
序: 以前一直用的是STC51 + 飞思卡尔xs128组合,简单的就用51写,复杂的用xs128,对于AVR、PIC、STM系列是只闻其声,不见其人。 最近因为要做飞思卡尔电磁磁场发生器而开始第一次接触AVR,顿有相见恨晚之感。 简单原创 2011-08-01 11:50:35 · 1722 阅读 · 0 评论 -
atmega8 Flash的使用
GCCAVR中读取Flash区数据定义:const int temp PROGMEM = 1;读取:pgm_read_byte(addr);pgm_read_word(addr);pgm_read_dword(addr); 字符串:全局定义原创 2011-08-10 22:29:20 · 1128 阅读 · 1 评论 -
让atmega8可以和飞思卡尔xs128一样对IO引脚进行定义
好吧,不得不承认,我使用飞思卡尔的XS128单片机已经非常之习惯了,结果一上手atmega8,最令我反感的就是atmega8不能对IO引脚进行操作,非要用些繁琐的位操作。我就不,我就要像飞思卡尔那样操作。。。 于是。。。。。。原创 2011-08-04 12:59:21 · 1985 阅读 · 0 评论 -
atmega8 例程:T1定时器 CTC模式 方波输出
/******************************************************************** 函数库说明:ATMEGA8 T1定时器 CTC模式 方波输出* 版本: v1.00原创 2011-08-13 09:49:05 · 2998 阅读 · 0 评论 -
atmega8 例程:定时器T1 普通模式
/****************************************************************** 函数库说明:ATMEGA8 定时器T1 普通模式* 版本: v1.00* 修改: 庞辉 芜湖联大飞思原创 2011-08-13 09:57:56 · 4404 阅读 · 0 评论 -
atmega8 例程:T1定时器 快速PWM
/****************************************************************** 函数库说明:ATMEGE8 T1定时器 快速PWM* 版本: v1.0 * 修改:原创 2011-08-13 09:58:43 · 3453 阅读 · 0 评论 -
atmega8 例程:T1定时器 CTC模式 10ms定时器 1s连续定时
/******************************************************************** 函数库说明:ATMEGA8 T1定时器 CTC模式 10ms定时器 1s连续定时* 版本: v1.00原创 2011-08-13 09:56:47 · 3029 阅读 · 0 评论 -
AD转换器的参数介绍
分辨率、参考电压这些地球人都知道的就不说了。 当“参考电压”和“分辨率”被确定后,每两个数值间的差值,即“步进量”。上面的“步进量”在AD中称为1LSB(最低有效位,Least Significant Bit)所代表的电压值。以5V参考电压、10位精度的AD为例1LSB能够表示的电压值为:1LSB所表示的电压值 = 参考电压5V / (0x3FF + 1)= 4.88mv原创 2011-11-27 22:49:57 · 4659 阅读 · 0 评论 -
IAR编译器的常见问题
最近因为项目需要开始使用IAR for AVR,我用的是5.40版本的,主要是5.40以上才包括了aTtiny87,至于安装文件和和谐文件,大家自己找吧,很好找的。 1.编译报错如图所示:很显然你没有使能寄存器的位定义。方法如下:Project ——> Option ——> General Options ——> System(如下图所示),勾选Enable bi原创 2011-11-30 13:52:15 · 5403 阅读 · 0 评论 -
IAR生产HEX文件
刚刚接触IAR,编译默认生成的是.a90文件,但直接用avr studio下载时提示非正规HEX文件,不给我下载,郁闷了。 其实也简单,如下图所示配置文件后面加几行字就OK了。//Output File-Ointel-extended,(XDATA)=.eep-Ointel-extended,(CODE)=.A90-Ointel-extended,(COD原创 2011-11-30 18:54:56 · 4374 阅读 · 0 评论 -
IAR 定义变量到寄存器中 "__regvar"
今天在编译ata5790的程序就没mtk600那么顺利了,当然那也不叫顺利,也是悲剧的很,说白了,对于IAR这个编译器我佩服的五体投地。 不是一般的强大,不是一般的复杂,不是一般的难用。 好了,好了,回归正题。 编译报错是这样的:Error[Pa043]: the keyword "__regvar" is not available with the current原创 2011-12-01 18:58:39 · 4198 阅读 · 0 评论 -
IAR 扩展关键字
1.扩展关键字:用于控制数据和指针__eeprom 用于EEPROM 存储空间, 控制数据存放,控制指针类型和存放__tinyflash, __flash, __farflash, __hugeflash 用于flash 存储空间, 控制数据存放,控制指针类型和存放__ext_io, __io 用于I/O存储空间, 控制数据存放,控制指针类型和存放__regvar 放置原创 2011-12-01 23:23:38 · 3570 阅读 · 0 评论 -
【IAR警告】Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined
Warning[Pa082]: undefined behavior: the order of volatile accesses is undefined in this statement 运算符两边都是volatile变量的警告 这警告有意义.用volatile修饰的变量一般不直接参与运算,volatile就以为着这个变量在运算过程中有可能已经改变了例如:想原创 2011-12-01 22:04:21 · 10907 阅读 · 0 评论 -
IAR RAM的操作
SARM空间是AVR单片机最重要的部分,所有的操作必须依赖该部分来完成。变量在SARM空间的存储模式有tiny,small,large 三种,也就是对应于__tiny, __near,__far三中存储属性。一旦选择为哪种存储模式,对应的数据默认属性也就确定了,但可以采用__tiny, __near,__far关键字来更改。对于程序中的局部变量,编译器会自动处理的,我们也不可能加什么储原创 2011-12-01 23:35:39 · 4317 阅读 · 0 评论 -
atmega8 例程:FLASH版5110
今天试试把数组存到flash里,再读出来,就在原先5110的工程上进行修改,能看出来我改在哪里了吗? #include "includes.h"uint8 Chinese_Font[][25]PROGMEM = { /*-- 文字: 芜 --*/原创 2011-08-10 20:43:15 · 1169 阅读 · 0 评论 -
atmega8 例程:12864例程
/****************************************************************** 函数库说明:ATMEGA8 NOKIA 12864LCD 驱动* 版本: v1.02 *原创 2011-08-08 19:35:39 · 2504 阅读 · 0 评论 -
atmega8 例程:INT1外部中断
/************************************************************ 函数库说明:ATMEGE8 INT1中断程序 * 版本: v1.0原创 2011-08-01 18:46:47 · 3996 阅读 · 0 评论 -
atmega8 IO驱动能力
普通51 IO口 拉电流100ua 灌电流10ma atmege8 IO口 拉电流20ma 灌电流 20ma 今天又在焊的板子上加了一个蜂鸣器,IO口直接驱动,比悲剧的51还要加个三极管驱动强多了 蜂鸣器果断很有远见的加到PWM口上去,到时可以放个音乐了原创 2011-08-01 16:09:01 · 2056 阅读 · 0 评论 -
atemega8例程:灯闪烁
/************************************************************ 函数库说明:ATMEGE8 灯闪烁 ** 版本: v1.0原创 2011-08-01 12:02:57 · 1205 阅读 · 0 评论 -
atmega8 例程:按键输入检测
/************************************************************ 函数库说明:ATMEGE8 按键检测程序 * 版本: v1.0原创 2011-08-01 12:20:13 · 2143 阅读 · 0 评论 -
atmega8 例程:PWM
/************************************************************ 函数库说明:ATMEGE8 PWM* 版本: v1.0 * 修改: 庞辉原创 2011-08-02 00:07:25 · 3474 阅读 · 0 评论 -
atmega8 默认内部RC振荡 + 解锁
今天偶然的机会,因为定时器老是不对劲,而把晶振给拔了突然发现对程序的运行没有任何影响,这次我才想起来atmege8是不是有内部晶振哦。 一查果然。。。。。。修改的方法是改熔丝位 时钟源 启动延时 熔丝原创 2011-08-01 23:56:02 · 2643 阅读 · 0 评论 -
atmega8 例程:系统库函数的延迟
/************************************************************ 函数库说明:ATMEGE8 延迟库函数* 版本: v1.0 * 修改: 庞辉原创 2011-08-02 23:49:05 · 2023 阅读 · 0 评论 -
atmega8 例程:USART串口通信
/****************************************************************** 函数库说明:ATMEGA8 串口通信* 版本: v1.0 * 修改: 庞辉原创 2011-08-03 14:52:32 · 9257 阅读 · 0 评论 -
atmega8 例程:5110液晶驱动程序
/****************************************************************** 函数库说明:ATMEGA8 NOKIA 5110LCD 驱动* 版本: v1.0 *原创 2011-08-04 00:27:41 · 2160 阅读 · 0 评论 -
atmega8 例程: 查询方式AD采集
/************************************************************ 函数库说明:ATMEGE8 AD模数转换 * 版本: v1.0原创 2011-08-05 20:06:31 · 4242 阅读 · 3 评论 -
关于AVR I/O 的驱动能力的介绍
在使用中还要注意的是: 虽然 IO端口的灌电流(IOL)在稳定的实验条件下,可以达到每路20 mA (VCC = 5V时), 10 mA (VCC = 3V时),但必须遵从: TQFP 及 MLF 封装 1] 所有端口的总和, 不能超过 400 mA. 2转载 2011-08-05 23:53:59 · 1210 阅读 · 0 评论 -
坑爹的AVR编译器中文路径问题
今天下午遇到了一个很无语的问题,算了,不提了,最后解决了。。。。。 总之下次一个可以编译的工程,在任意添加一个文件后不能编译了,那么请检查工程目录是否有中文。。。。。。。原创 2011-08-05 16:15:58 · 974 阅读 · 0 评论 -
atmega8 例程:AD中断方式采集
/************************************************************ 函数库说明:ATMEGE8 AD模数转换 * 版本: v1.0原创 2011-08-06 22:08:20 · 3051 阅读 · 0 评论 -
IAR 数据类型
整型类型:bool 数据类型在C++语言里是默认支持的。如果你在C代码的头文件里包含stdbool.h, bool数据类型也可以使用在C语言里。也可以使用布尔值 false和 true。char型是无符号型还是有符号型,可以在工程设置中选择。 浮点类型:原创 2011-12-01 23:20:11 · 3521 阅读 · 0 评论