xmega128学习笔记文档格式.docx
《xmega128学习笔记文档格式.docx》由会员分享,可在线阅读,更多相关《xmega128学习笔记文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
《FLIP软件帮助》
今天的内容就到这里,谢谢大家的关注。
XMEGA128学习笔记2-CVAVR编译环境
XMEGA128常用的有GCC和IARforAVR两种编译环境,其中GCC是ATMEL公司开发的AVRStudio5.0,免费软件,而且内置了开发板的例程。
IARforAVR是一款商业软件。
今天我们向大家介绍一款支持XMEGA的编译环境CVAVR,它能够通过设置参数自动生成代码,无需查阅相关寄存器。
而且内置支持单总线,LCD等常用器件,下图是效果图:
XMEGA128学习笔记3-流水灯
GPIO的特点有
1、可以独立配置引脚输入或者输出
2、输出速率控制
3、多种输出模式
4、时钟输出等等
今天我们就做最简单的流水灯操作,和MEGA系列单片机一样,寄存器有:
1、方向寄存器DIR,设置为1表示输出模式,设置为0表示输入模式
2、数据输出寄存器OUT,设置1表示输出高电平,设置0表示输出低电平。
我们从原理图看到板上的8个流水灯在PORTE引脚上,代码如下:
#include
voidmain(void)
{
unsignedchari;
PORTE.OUT=0xFF;
//初始LED灭
PORTE.DIR=0XFF;
//输出模式
while
(1)
{
for(i=0;
i<
8;
i++)
{
delay_ms(1000);
PORTE.OUT=~(1<
<
i);
}
}
}
当然你也可以使用CVAVR代码生成功能,快出尝试GPIO的更多功能吧,也欢迎您分享您的心得。
XMEGA128学习笔记4-中断
GPIO能够设置为中断输入模式,可以配置为“上升沿”/下降沿/双边沿和低电平触发。
今天我们就带大家设置SW0按键为下降沿,实现翻转LED0的功能。
第一步:
打开CVAVR软件,新建一个工程,选择代码生成功能,如图所示:
第二步:
使能低级中断功能
设置SW0按键状态
设置LED0状态
第五步:
点击生成代码
第六步:
加入以下代码
编译后下载,大家看看是不是很简单就实现了这个功能啊。
XMEGA128学习笔记5-串口USART
Xmega128的串口非常强大,最多能支持8个串口。
串口又有四种模式:
1、异步
2、同步
3、IRDA红外模式
4、SPI主模式
今天我们就使用CVAVR代码向导生成简单串口测试程序,实现每1s打印“HELLOWORLD”字符串,同时能将接收到数据回显到串口调试助手上。
打开中断,因为我们需要实现串口回显的功能。
从开发板的原理图可以看到串口是在PC2和PC3脚,所以需要设置GPIO,经过CVAVR的提示PC3初始输出电平为1能够更加稳定:
第三步设置串口:
使能接收和发送功能,并开启接收中断。
最后生成代码,加入以下代码:
最后编译下载,复位后可以看到效果图:
XMEGA128学习笔记6-实时时钟RTC
Xmega128的RTC实际上就是16位定时器,它的框图如图所示。
时钟来源有两种:
1是32KHZ,2是1KHZ。
能够通过10位预分频,进一步得到低速频率。
图中Period表示周期,也就是最多计数值。
Compare是比较值,匹配时能够触发中断。
今天我就用RTC的匹配中断功能,进行1s报警闪烁LED0。
打开CVARV,新建一个工程,首先使能低级中断:
设置LED0端口输出。
选择时钟源,开启RTC比较中断。
生成代码,编译下载。
在RTC匹配中断函数中加入以下代码:
//RTCcompareinterruptserviceroutine
interrupt[RTC_COMP_vect]voidrtcxm_compare_isr(void)
//writeyourcodehere
PORTE.OUTTGL|=(1<
0);
//LED0闪烁
XMEGA128学习笔记7-模数转换ADC
Xmega的ADC特点有:
1、高达12位精度
2、高达2M/s采样率
3、有符号和无符号输出选择
4、可选增益(1X2X4X8X16X32X64X)
5、流水线结构设计
6、4个虚拟通道
7、结果比较功能
8、知道校准
9、内部连接DAC输出
整体结构如图所示:
今天我们测量内部通道的VCC/10和内部温度。
首先根据前面写的设置好USART。
然后我们按照下图设置ADCA进行内部通道的采集,0通道是内部温度,1通道是VCC/10.
最后生成代码,然后加入以下代码:
while
(1)
//Placeyourcodehere
delay_ms(1000);
ch0=adca_read(0);
ch1=adca_read
(1);
printf("
tempref:
%d,vcc/10:
%d\r\n"
ch0,ch1);
vcc=((float)ch1/4096-0.05)*10;
//0.5是误差修正
VCCValue:
%0.2fV\r\n"
vcc);
实验现象,得到温度数据需要转成实际的芯片内部温度,没有找到相应的公式。
大家可以把手放到芯片上,明显温度有上升的趋势。
XMEGA128学习笔记8-负温度系数热敏电阻NTC
板上的热电偶原理图如上图所示:
使用的型号是NCP18WF104J03RB,PDF见附件所示。
负温度系数热敏电阻器的电阻温度特性可用下式表示:
R=Ae(B/T)式中:
R---温度为T时热敏电阻器的电阻值;
A---与热敏电阻器材料物理特性及几何尺寸有关的系数;
B---热敏指数;
T---热力学温度。
T=273.15+t
CVAVR相应地设置如图所示,串口设置前面已经多次叙述过。
说明书上叙述,外界温度为25度时,R=100K,带入原理图电压应该为0.3V
与实际测试效果相符合。
XMEGA128学习笔记9-光敏传感器
光敏传感器等于一个电流源,根据外界光的大小,产生不同光电流。
传感器型号是TEMT6000,说明书见附件所示。
板上的原理图如下:
CVAVR的设置如下,这里需要说明的参考电压选择的是AREFpinonPORTA,所以需要将PA0连接到VCC,参考电压为3.3V。
XMEGA128学习笔记10-数模转换DAC
特点:
1、12位精度
2、高达1M/s的转换速度
3、连续驱动或者采用保持输出
4、内置偏置和增益校准
5、高驱动能力
更新了最新版本CVAVR2.05.2,有DAC的功能啦,不过有4K代码的限制。
http:
//www.hpinfotech.ro/
本例程使用最新版本,请大家去官网下载最新软件。
DAC的框图如下所示:
打开CVAVR的DAC生成面板,准备写一个在DACA通道0输出一个锯齿波。
然后加入以下代码:
//Placeyourcodehere
for(value=0;
value<
0XFFF;
value++)//锯齿波
daca_write(0,value);
实验现象如图:
XMEGA128学习笔记11-定时器TC
特点有:
1、16位定时/计数
2、双缓冲定时器周期设置
3、高达4位比较或者捕获通道
4、波形产生单脉冲/双脉冲/频率发生器
5、输入捕获带噪声消除/频率捕获/脉宽捕获
6、32位输入捕获方向控制
7、定时器溢出/错误中断或者事件
8、每通道有一个比较匹配或者捕获中断/事件
9、支持DMA
10、高阻高精度扩展Hi-Res
11、高级波形扩展AWeX
今天我们就使用定时器进行简单的LED灯闪烁,CVAVR设置如下:
编译后下载,就能看到LED0间隔1s闪烁。