搜索
bottom↓
回复: 83

【原创】AtmelStudio-6.0简易入门教程

  [复制链接]

出0入0汤圆

发表于 2013-11-1 15:00:09 | 显示全部楼层 |阅读模式
本帖最后由 rantingting 于 2013-11-1 15:05 编辑

    我使用AVR系列单片机比较晚,也就是近半年开始接触使用的,之前一直使用的STC的,不过STC经常会出现些莫名其妙的问题,反正就是感觉稳定性上还不是那么好吧(或者只是借口,嘿)。
最开始接触其实是因为买了块ARDUINO  MEGA2560的板子,发现AVR还是更牛的,不过后来发现ARDUINO不适合电子专业人士,非电子的玩起来可能更有价值吧,后来就买了AVR的简易开发板。
不过玩的早不如玩得巧,正在我为AVR众多编译软件的选择而不爽的时候,AtmelStudio6.0出世了,我就毫不犹豫的开始试用了。
    开始的时候还是很不顺利的,AtmelStudi6.0这个全新的环境使用起来极其不顺手,因为首先我对AtmelStudio以前的版本也根本没有使用经验,就根据很陌生,其次,这个新版本软件还根本
没有人用,根本没有任何的相关教程资料,唯一可以参考的只是官网的比较简单的视频教程,还是英文讲解,反正没怎么搞透。不过还是硬着头皮用下去,因为软件是免费的,而且当后来我知
道代码编辑环境其实就是微软VS环境的时候,我就更不犹豫了,大家应该都了解VS的代码编写环境是很智能的,尤其自动补全功能。
    现在,我已经能很熟练的使用AtmelStudio6.0软件了,随着使用我也更加喜欢玩AVR单片机做一些小作品了,而不再用普通51和STC了。 当使用熟练以后也就感觉到其实这个免费智能的编译环
境其实是很简单的,那现在我就帮助更多喜欢使用AVR而没用使用AtmelStudio软件的同学们轻松越过这一个门槛,进入一个美好的编程世界。
    该软件的不足之处:一是软件相对较大,打开比较慢,但是运行还是比较顺利的;二是       不支持山寨仿真器,这可苦了没钱的劳苦电工们了。(不过我都是用ISP烧录调试,一般不用仿真)

    最下面附件有一个简单的LED_test工程文件,编译通过的。大家可以试用。

下面开始介绍的软件工程的建立。
1.        软件总界面
总体界面还是比较简洁的,和其他编译软件都是差不多的,而且和KEIL软件的界面是很相似的,使用很方便。



2.        新建工程
新建工程很简单:
FILE->NEW->Project  然后就看到下面的新建工程界面了,选择第一个 GCC C Executable工程就可以,第二个GCC C static Library 是用来新建 .h文件的。
然后下面蓝圈1是C文件的名称,蓝圈2  Solution Name 是工程的文件,中间的Location是文件存放位置,自己选择合适的位置即可。
点击下面的OK



3.        下面接着是单片机型号选择界面,选择合适的单片机就可以了。



4.        下面就看到真正的代码编辑界面了,软件会智能的添加工程文件说明信息,并提供简单的main函数代码,比较好。在代码编辑区编写你的实现代码即可。




5.        大家可能看到上面中文注释部分由让人不喜欢的下划波浪线,下面告诉你怎么除掉它。
VAssistX –> Visual Assist X options     然后underlines 选择min即可,如下图



6.        对于软件环境的工具栏常用按键下面简单说一下,如下图。
(1)        圈1:就是编译按钮 和 KEIL的按键是一样的
(2)        圈2:是单片机型号选择,这个不同平台之间移植要首先修改单片机型号,不然会出错,这个也是本软件的一个优点,这样就AVR所有的单片机系列之间可以轻松的移植,如果遇到寄存器变化,编译的时候就会出错,提示你修改
(3)        圈3:就是注释和缩进快捷按钮 也是编写代码比较常用的



7.        下面介绍一些使用atmelstudio6.0需要注意的一下事项。这些事项很重要,不然会导致你无法编译成功,这些事项其实是从网上一篇文章《从ICC AVR 到 Atmel Studio 6》中摘录的,
一直不知道这位大侠是谁,在这里先向这位无私的大侠致敬,如果该大侠看到该我的文章,如果有不同意还请告诉我。

注意事项整理如下:

1)        MCU必须的头文件     
Atmel Studio 6 (以下简称AS6)中统一用#include <avr/io.h>。这点很重要,AS6把atmel所有的单片机头文件全都集成在一起了,以后不必再去分具体的每种芯片的头文件了
2)        汇编嵌入   
在AS6 中,你可以直接使用asm("xxx")格式.或者用小写的sei();这个其实是很爽的,最常用的就是中断控制,使用比较方便。

3)        延时函数     
在AS6中,只需要加载一个头文件#include <util/delay.h>,就可以使用两个标准的延时函数,分别是_delay_ms(double  __ms)和_delay_us(double __us),虽然参数为double型,
但可赋整型值。注意在调用前定义#define F_CPU 8000000UL,如下图,这样延时10ms的函数写为_delay_ms(10),经过试用,只要晶振填写准确,这两个延时函数很准确。


4)        中断函数     
在AS6中,需加载头文件#include <avr/interrupt.h>,并且函数名为ISR,不可自定义函数名,格式如下:   
ISR( TIMER0_OVF_vect )  
{…}     
TIMER0_OVF_vect 含义同iv_TIMER0_OVF ,是T0溢出中断号。不同型号mcu的中断向量号的名称不同,A6的中断向量号请从avr/iomXXX.h中查找。

5)         EEPROM操作函数     
在ICC中加载头文件#include <eeprom.h>后,可以使用如下两个读写函数:
EEPROM_read(addr, var); //读EEPROM中的一个字节     
EEPROM_write (addr, var); //向EEPROM中写入一个字节     

6)         定义数据在flash区     
主要用于在字符点阵或图形点阵数据存放在flash区,这样可以减少data区的使用,不至于使data区溢出。
在AS6中,需加载头文件#include <avr/pgmspace.h>,然后用 PROGMEM 。
举例说明:     
PROGMEM const unsigned char flash[10];
在flash区声明一个unsiged char型的数组,成员个数10。  
  
unsigned char a;     
a = pgm_read_byte(flash[0]);   
把flash [0]值赋给变量a。而a = flash[0]是不会从flash区读数据的,而是读data区的数据。  

二维数组:  PROGMEM const unsigned char flash[3][10]={……};     
指针数组:  PROGMEM const unsigned char* const flash[3]={……};





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入21汤圆

发表于 2013-11-1 15:14:23 | 显示全部楼层
还在用4的飘过。

出0入0汤圆

发表于 2013-11-1 15:36:26 | 显示全部楼层
也在用AS6, 支持楼主共享。同时把《从ICC AVR 到 Atmel Studio 6》上传, 给需要的人。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-11-1 18:36:34 | 显示全部楼层
Mark

出0入0汤圆

发表于 2013-11-1 20:01:01 | 显示全部楼层
做个小小记号.

出0入0汤圆

发表于 2013-11-1 20:23:17 | 显示全部楼层
不知道为啥要基于VS做个IDE,又大又卡,还不如eclipse,还开源

出0入0汤圆

发表于 2013-11-1 21:11:28 | 显示全部楼层
安装个VS10 就可以使中文版的了······

出0入0汤圆

发表于 2013-11-2 23:26:35 | 显示全部楼层
这软件是有些大,喜欢用IAR,有无更好的推荐?

出0入0汤圆

发表于 2013-11-3 23:56:25 来自手机 | 显示全部楼层
安装的时候总是提示少了一个或多个组件 ??敢问是怎么回事

出0入0汤圆

 楼主| 发表于 2013-11-4 09:01:39 | 显示全部楼层
男小北 发表于 2013-11-3 23:56
安装的时候总是提示少了一个或多个组件 ??敢问是怎么回事

我win7  安装没有这个问题  它附带的那些东西都要装才行

出0入0汤圆

发表于 2013-11-5 00:37:03 | 显示全部楼层
謝謝樓主的共享!

出0入0汤圆

发表于 2013-11-6 10:44:08 | 显示全部楼层
rantingting 发表于 2013-11-4 09:01
我win7  安装没有这个问题  它附带的那些东西都要装才行

win7  32位的安装没有出现问题 64位的  一直出现这个问题  

出0入0汤圆

 楼主| 发表于 2013-11-6 11:10:46 | 显示全部楼层
男小北 发表于 2013-11-6 10:44
win7  32位的安装没有出现问题 64位的  一直出现这个问题

我的就是64位的

出0入0汤圆

发表于 2013-11-6 11:25:02 | 显示全部楼层
rantingting 发表于 2013-11-6 11:10
我的就是64位的

可能是我系统 的问题   

出0入0汤圆

发表于 2013-11-6 16:40:19 | 显示全部楼层
谢谢楼主,收藏了

出0入0汤圆

发表于 2013-11-8 10:50:28 | 显示全部楼层
好帖。。。

出0入0汤圆

发表于 2013-11-8 13:56:45 | 显示全部楼层
mark,可以多多讨论下。

出0入0汤圆

发表于 2013-11-8 13:59:22 | 显示全部楼层
最近一直在AV6挺好用的

出0入0汤圆

发表于 2013-11-9 07:35:50 | 显示全部楼层
在用,挺好的!大家一起来用吧

出0入0汤圆

发表于 2013-11-9 09:00:23 | 显示全部楼层
不是说AVR已死吗?

出0入0汤圆

 楼主| 发表于 2013-11-9 09:09:12 | 显示全部楼层
meirenai 发表于 2013-11-9 09:00
不是说AVR已死吗?

死也没那么快吧  况且死不死谁能说定

出0入0汤圆

发表于 2013-11-9 09:11:58 | 显示全部楼层
4.13很稳地的说

出0入0汤圆

 楼主| 发表于 2013-11-9 09:15:34 | 显示全部楼层
cpu100 发表于 2013-11-9 09:11
4.13很稳地的说

如果你用了6,你会说  6.0很稳定且超好用的说  

出0入0汤圆

发表于 2013-11-9 09:19:15 | 显示全部楼层
rantingting 发表于 2013-11-9 09:15
如果你用了6,你会说  6.0很稳定且超好用的说

现在avr用的很少了

出0入0汤圆

发表于 2013-11-13 09:52:27 | 显示全部楼层
xlwq 发表于 2013-11-1 21:11
安装个VS10 就可以使中文版的了······

vs10怎么还要产品序列码啊,这个怎么获得呢

出0入0汤圆

发表于 2013-11-13 10:00:09 | 显示全部楼层
我的是中文版的,楼主,怎么下载你怎么没讲呢,我用的是ISP烧录模式,给我讲讲啊

出0入0汤圆

发表于 2013-11-13 11:04:37 | 显示全部楼层
ljbskx 发表于 2013-11-13 09:52
vs10怎么还要产品序列码啊,这个怎么获得呢

我的VS2010没有要求输入 序列号!!

出0入0汤圆

 楼主| 发表于 2013-11-13 13:00:45 | 显示全部楼层
xlwq 发表于 2013-11-13 11:04
我的VS2010没有要求输入 序列号!!

没有啊,你别自己单独安装,studio 6 会自动安装  不要序列号

出0入0汤圆

 楼主| 发表于 2013-11-13 13:02:36 | 显示全部楼层
ljbskx 发表于 2013-11-13 10:00
我的是中文版的,楼主,怎么下载你怎么没讲呢,我用的是ISP烧录模式,给我讲讲啊 ...

下载我是用的那种跟优盘一样大小的isp下载器,官方的下载器相当贵的,600多吧好像,而且盗版的根本不支持,就直接用avr isp模块把hex文件烧录进去就行

出0入0汤圆

发表于 2013-11-13 13:52:26 | 显示全部楼层
这个编译器好用吗?

出0入0汤圆

 楼主| 发表于 2013-11-13 15:51:28 | 显示全部楼层
ljt80158015 发表于 2013-11-13 13:52
这个编译器好用吗?

跟人任务,超好用,尤其码字写代码方面

出0入0汤圆

发表于 2014-2-10 21:28:02 | 显示全部楼层
下载Atmel Studio 6,太大了,网速慢,花了一天时间~

出0入0汤圆

 楼主| 发表于 2014-2-10 22:21:45 | 显示全部楼层
dela2000 发表于 2014-2-10 21:28
下载Atmel Studio 6,太大了,网速慢,花了一天时间~

是你家的网速不行

出0入0汤圆

发表于 2014-2-13 17:38:43 | 显示全部楼层
rantingting 发表于 2014-2-10 22:21
是你家的网速不行

有可能~

出0入0汤圆

发表于 2014-2-14 22:16:29 | 显示全部楼层
mark            

出0入0汤圆

发表于 2014-2-20 16:44:29 | 显示全部楼层
众里寻他千百度

出0入0汤圆

发表于 2014-2-20 17:00:12 | 显示全部楼层
AtmelStudio的确是Atmel不遗余力推出的好作品
就是安装太大了。关键是免费的啊

出0入0汤圆

发表于 2014-2-20 19:05:22 | 显示全部楼层

做个小小记号.

出0入0汤圆

发表于 2014-2-20 19:53:10 | 显示全部楼层
mark留名备用

出0入0汤圆

发表于 2014-3-2 09:02:13 | 显示全部楼层
正在迷糊不知怎么弄时,看到了楼主的帖子,给力

出0入0汤圆

发表于 2014-3-2 10:15:20 | 显示全部楼层
谢谢楼主分享,只用过AVR stuido 4,打算了解一下6.

出0入0汤圆

发表于 2014-3-2 11:35:09 | 显示全部楼层
onece 发表于 2013-11-1 15:14
还在用4的飘过。

恩,+1

出0入0汤圆

发表于 2014-3-2 20:14:06 | 显示全部楼层
以前一直ICC,GCC,然后下了AVRstudio没用,现在这个看来不错啊

出0入0汤圆

发表于 2014-3-2 20:26:32 | 显示全部楼层
不调试用VS6实在没有必要,代码补全有很多工具
小且打开快速

出0入0汤圆

 楼主| 发表于 2014-3-2 20:35:51 | 显示全部楼层
minier 发表于 2014-3-2 20:26
不调试用VS6实在没有必要,代码补全有很多工具
小且打开快速

还请赐教,代码补全的工具?  VS6会自动识别你所选芯片型号的rom等还有一些很好的设别功能

出0入0汤圆

发表于 2014-3-4 12:20:44 | 显示全部楼层
AS6 不好用。上手要花很多时间。ICC AVR, CrossStudio 很好。

出0入0汤圆

 楼主| 发表于 2014-3-4 13:15:55 | 显示全部楼层
qwang 发表于 2014-3-4 12:20
AS6 不好用。上手要花很多时间。ICC AVR, CrossStudio 很好。

上手及其简单…………

出0入0汤圆

发表于 2014-3-5 09:52:01 | 显示全部楼层
很好!刚好,可以改用AS6

出0入53汤圆

发表于 2014-6-21 13:10:56 | 显示全部楼层
hyghyg1234 发表于 2013-11-8 13:59
最近一直在AV6挺好用的

如何汉化?

出0入0汤圆

发表于 2014-6-21 14:09:50 | 显示全部楼层

我直接用的英文版本的。

出0入53汤圆

发表于 2014-6-21 16:54:42 | 显示全部楼层
hyghyg1234 发表于 2014-6-21 14:09
我直接用的英文版本的。

那 我也用英文的 ,现在所用的IDE都是英文的,突然改成中文的还真怕不习惯

出0入53汤圆

发表于 2014-7-9 16:11:42 | 显示全部楼层
本帖最后由 zhcj66 于 2014-7-9 16:32 编辑

我第一次用AS6怎么修改成atmega128后然后 初始化管脚后,管脚就不停的高低电平轮询,在初始化后没有操作IO口
用AVR ICC就没有这样的问题

出0入53汤圆

发表于 2014-7-9 16:47:56 | 显示全部楼层
spy2008 发表于 2013-11-1 15:36
也在用AS6, 支持楼主共享。同时把《从ICC AVR 到 Atmel Studio 6》上传, 给需要的人。 ...

请问用AS6初始化IO口后为什么 在高低电平统一变化呢? 没有操作IO口

出0入0汤圆

 楼主| 发表于 2014-7-9 19:48:32 | 显示全部楼层
zhcj66 发表于 2014-7-9 16:47
请问用AS6初始化IO口后为什么 在高低电平统一变化呢? 没有操作IO口

没遇到这种情况,可能是你程序有写问题吧

出0入53汤圆

发表于 2014-7-10 09:47:32 | 显示全部楼层
rantingting 发表于 2014-7-9 19:48
没遇到这种情况,可能是你程序有写问题吧

今天早上终于搞明白了,是在熔丝里面使能了看门狗,在程序里面没有初始化看门狗,也没有喂狗,造成mcu不停的复位

出0入53汤圆

发表于 2014-7-10 10:13:59 | 显示全部楼层
rantingting 发表于 2014-7-9 19:48
没遇到这种情况,可能是你程序有写问题吧


现在新的问题来了,如何喂狗呢,以前用的是WDR();  还有开关全局中断 以前用的是SEI();和CLI(); 现在不知道如何使用了,用AS6.2不能用这个

出0入53汤圆

发表于 2014-7-10 10:46:22 | 显示全部楼层
zhcj66 发表于 2014-7-10 10:13
现在新的问题来了,如何喂狗呢,以前用的是WDR();  还有开关全局中断 以前用的是SEI();和CLI(); 现在不知 ...

已经找到答案,顺便把楼主编辑的内容发上来
#define WDR()   asm("wdr")   
#define SEI()   asm("sei")   
#define CLI()   asm("cli")   
#define NOP()   asm("nop")   
#define SLEEP() asm("sleep");   
#define _WDR()  asm("wdr")   
#define _SEI()  asm("sei")   
#define _CLI()  asm("cli")   
#define _NOP()  asm("nop")   
#define _SLEEP() asm ("sleep");   
#define BIT(x)   (1 << (x));   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-8-12 13:06:16 | 显示全部楼层
mark      

出0入0汤圆

发表于 2014-8-13 16:01:57 | 显示全部楼层
新手!外部中断ISR(XXXXX)括号里面怎么写啊?

出0入0汤圆

发表于 2014-8-13 16:42:32 | 显示全部楼层
Zenmvol 发表于 2014-8-13 16:01
新手!外部中断ISR(XXXXX)括号里面怎么写啊?

还想弄对了……

出0入0汤圆

发表于 2014-9-4 00:34:08 | 显示全部楼层
不错不错,帮大家入门了……

出0入0汤圆

发表于 2014-11-15 20:04:04 | 显示全部楼层
准备回归ATMEL, 学习。

出0入0汤圆

发表于 2014-11-15 20:52:59 | 显示全部楼层
细心的网友,收藏了

出0入0汤圆

发表于 2014-11-15 21:29:33 | 显示全部楼层
谢谢楼主分享,好久之前就十分想用6.0版本,这次终于又看到教程了

出0入0汤圆

发表于 2014-11-16 20:17:42 | 显示全部楼层
AS6 软件太大,启动太慢,不喜欢这个软件,还是IAR用起来爽得多

出0入0汤圆

发表于 2014-11-17 14:41:29 | 显示全部楼层
谢谢啦,试一下

出0入0汤圆

发表于 2014-11-17 19:53:22 | 显示全部楼层
装了WIN8.1, 64位,没办法,也升级到 AS6 吧。还有LGT 也推荐 6.....

出0入0汤圆

发表于 2014-11-20 15:28:22 | 显示全部楼层
thank !还好有你这个文档,不然我又得瞎折腾一天咯

出0入0汤圆

发表于 2014-11-24 00:05:51 | 显示全部楼层
好资料,对我这样想用AVR的人来说很有用、

出0入0汤圆

发表于 2014-12-22 10:29:05 | 显示全部楼层
新手,谢谢分享!

出0入0汤圆

发表于 2015-1-3 13:19:13 | 显示全部楼层
多谢了啊,非常的不错啊,不过没有JTAG是非常的不爽的,程序写大了就知道了!

出0入0汤圆

发表于 2015-1-3 13:27:51 | 显示全部楼层
mark                           

出0入0汤圆

发表于 2015-1-5 11:30:52 | 显示全部楼层
一直用的ICCAVR。感觉界面简洁好用

出0入0汤圆

发表于 2015-1-17 23:03:25 | 显示全部楼层
AS6.2用着不错,就是没有ICE,烦恼哎.

出0入0汤圆

发表于 2015-1-17 23:17:37 | 显示全部楼层
好东西呀

出0入0汤圆

发表于 2015-3-16 16:22:27 | 显示全部楼层
针对自己芯片设计的IDE,按说应该更简洁,但是做得非常大,电脑慢的话使用起来也慢,不过功能确实强大

出0入0汤圆

发表于 2015-3-16 16:39:15 | 显示全部楼层
简直就是VS2010

出0入0汤圆

发表于 2015-3-24 22:50:21 | 显示全部楼层
正在学习AVR中,多谢楼主分享

出0入0汤圆

发表于 2015-7-13 14:30:36 | 显示全部楼层
正需要还不错的,谢谢

出0入0汤圆

发表于 2015-8-3 13:14:40 | 显示全部楼层
一直用ICCAVR

出0入0汤圆

发表于 2015-11-11 10:55:11 | 显示全部楼层
IAR用的多,强大

出0入0汤圆

发表于 2021-9-26 17:51:33 | 显示全部楼层
支持AVR,早日换发新生!

出30入8汤圆

发表于 2021-12-26 10:49:49 | 显示全部楼层
感謝樓主,收藏!

出110入109汤圆

发表于 2021-12-26 13:51:49 来自手机 | 显示全部楼层
MCHP这家黑寡妇风格,搞封闭生态的,都在诱导客户,去用它那异常臃肿的MPLAB……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-11 10:39

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表