AtmelStudio-6.0简易入门教程(精炼实用)
- 格式:pdf
- 大小:847.34 KB
- 文档页数:14
Atmel® Studio 6 is the integrated development environment (IDE) for developing and debugging embedded applications based on Atmel AVR® and ARM® Cortex™-M microcontrollers (MCUs) in C/C++ and assembly code. The IDE makes editing and debugging source code easier by seamlessly bringing together an intelligent editor with assisted code writing, a wizard for quickly creating new projects, the Atmel Software Framework with free source code library, a GNU C/C++ Compiler, a powerful simulator, and the front-end for all Atmel programmers and in-circuit debuggers.Atmel Studio 6 is free of charge and available for download at /atmelstudio.What’s New in Atmel Studio 6• Support for Atmel ARM Cortex-M based MCUs• Fully integrated Atmel QTouch® Composer• Full support for C++Your Avenue to Atmel AVR and ARM Cortex-M Based MCU DesignDesigners using AVR MCUs are already familiar with our IDE, previously known as AVR Studio® 5. Now, the communityof ARM Cortex-M design engineers can take advantage of the same easy-to-use, professional and highly integrated development platform.Integrated QTouch ComposerFully integrated into Atmel Studio 6, Atmel QTouch Composermakes it easy to build touch functionality into your design.QTouch Composer is the front-end software used to displayand evaluate the data reported from your touch design,making it easy for you to inspect how well your touchimplementation performs. With this integration, you can easilyand seamlessly develop capacitive touch functionality into yourapplication. You won’t need to toggle between different toolsto edit the code in Atmel Studio 6 and fine-tune your touchdesign in QTouch Composer.Atmel Software FrameworkThe Atmel Software Framework contains drivers for all peripherals,communication stacks, graphics, digital signal processing (DSP) and audiolibraries, and nearly 1,000 complete example designs. Using free source codefrom the Atmel Software Framework will accelerate the development of newapplications, while lowering your overall costs.Debugging Made EasyAtmel Studio 6 connects directly to Atmel debuggers and programmers. One of thebiggest advantages of modern MCUs is their ability to send debug data to your PC, givingyou a perfect view of what goes on inside. With a debugger connected, Atmel Studio 6can present the status of all processors, memories, communication interfaces and analoginterfaces in nicely formatted views, giving you access to critical system parameters. Theresimply is no faster way to identify bugs and optimize a design—in the lab or in the field.To learn more or download Atmel Studio 6 free of charge, visit /atmelstudio .© 2012 Atmel Corporation. All rights reserved. / Rev.: 8487B-Studio6-E-A4-09/12Atmel ®, Atmel logo and combinations thereof, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries. ARM ®, ARMPowered ® logo and others are the registered trademarks or trademarks of ARM Ltd. Other terms and product names may be the trademarks of others. Atmel logo and combinations thereof, and others are registered trademarks or trademarks of Atmel Corporation or its subsidiaries.Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life. Atmel Corporation 1600 Technology Drive, San Jose, CA 95110 USA T: (+1)(408) 441-0311 F: (+1)(408) 487-2600 | 。
visualbasic6.0精简版使用方法Visual Basic 6.0是一种老版本的编程语言和集成开发环境(IDE),用于快速开发Windows应用程序。
以下是Visual Basic 6.0精简版的简要使用方法:1. **安装和设置**- 下载和安装Visual Basic 6.0精简版的安装程序。
- 运行安装程序,按照提示进行安装,并选择合适的安装选项。
- 安装完成后,打开Visual Basic 6.0精简版。
2. **创建新项目**- 打开Visual Basic 6.0精简版后,选择"File" 菜单,然后选择"New Project"。
- 在弹出的对话框中,选择项目模板,例如"Standard EXE"(标准可执行文件)。
- 点击"OK" 创建新项目。
3. **界面设计**- 在项目中,使用可视化设计器创建和设计用户界面。
- 在"Toolbox" 工具箱中选择所需的控件(如按钮、文本框、标签等),然后在窗体上拖放控件,调整其位置和大小。
- 双击控件可打开对应控件的代码编辑器,编写控件的事件处理程序。
4. **编写代码**- 在"Code" 窗口中编写程序逻辑。
- 使用Visual Basic 6.0的语法和函数,编写事件处理程序、条件判断和循环等代码。
- 可以使用内置的开发工具和功能,如代码提示、调试工具等,加快开发过程。
5. **编译和运行**- 完成代码编写后,选择"File" 菜单,然后选择"Make xxx.exe",其中"xxx" 是你的项目名称。
- 编译完成后,会生成一个可执行文件(.exe),该文件可以在Windows上运行你的应用程序。
需要注意的是,由于Visual Basic 6.0是一种老版本的开发工具,如果你的操作系统是Windows 7、8或10,可能会遇到兼容性问题。
AtmelStudio6.0 下程序的烧录操作
点击tools->Device Programming
出现如下画面:
选择Tool->JTAGICE mkll070000004699,这个选项是选择仿真器类型的,根据自己的仿真器类型选择就行了。
选择Device下的下拉菜单,选择自己的单片机型号。
选择Interface下的下拉菜单,选择ISP,然后点击Apply。
依次点击Target Voltage和Device signature下的Read,此时会读出当前片子的电压和地址。
点击左边栏目中的Memories,在右侧的复选框中找到工程路径下的.hex文件,点击Program,即可将程序下载到单片机内。
下载完成后会出现如下界面:
点击Fuses,此处是对单片机熔丝位的设置,所以选择要谨慎,否则单片机会被锁。
根据自己的晶振选择系统时钟,INTRCOSC为内部时钟信号,EXTXOSC 为外部时钟信号;内部时钟信号是以单片机内部的时钟为参考,外部时钟信号是以外接晶振为参考;由于atmega88单片机内部的晶振是LC震荡,所以并不精确,因此要用到定时器或者时序等,建议用外部晶振。
选择内部晶振:
选择外部晶振:
选择完成之后点击Program ,之后会出现如下显示,表示下载完成;如果熔丝位没有更改此处就不需要点击Program,如果更改了则需要重新Program之后才能生效。
一、建议工程文件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是文件存放位置,自己选择合适的位置即可。
点击下面的OK3. 下面接着是单片机型号选择界面,选择合适的单片机就可以了。
Anime Studio Pro 72快速指南教程1.1:快速体验绘制一个简单图形Anime Studio界面这个教程是从头至尾快速地了解Anime Studio的主要功能,而不深入它的细节。
目的是浏览Anime Studio是怎样工作的,而不是教你怎样使用某一特定功能。
在这一教程中,我们将绘制和动画一个简单的物体。
Anime Studio有若干编辑模式组成了其不同的工作任务。
有些工具用于生成新物体,其他用于修饰和动画现有的物体。
Anime Studio基础工具组有:绘图、填充、骨骼 、层、摄像机和工作空间。
这节教程介绍了一部分绘图、填充和层工具,而后面的教程将对这些工具组的各个工具分别进行详细地介绍。
双击Anime Studio图标启动Anime Studio,或者在开始菜单(Windows)选择Anime Studio程序。
当你新建了一个Anime Studio文件,它会出现如下画面:选择“文件>新建”创建一个新的工程,然后点击当前工具图标(正好在“文件”菜单的下面),选择“重置全部工具”,这样可以使所有的工具恢复到默认值状态,以便你能够与这个教程同步。
点击工具栏里的“创建图形”工具选择它。
快速指南快速体验Anime Studio Pro 73插图那样,当“自动填充”选项被勾选,这个圆形将会自动填充颜创建图形工具椭圆形工具改变填充颜色从创建图形工具选项栏里选择椭圆形工具。
Anime Studio界面的右边的样式面板运出你为你绘制的图形选择填充和轮廓颜色。
要选择填充颜色,点击填充颜色框打开一个颜色选择面板,从中选择你想填充的颜色,然后点击“确定”按钮。
在主窗口点击并拖动鼠标,绘制一个圆形。
绘制时按住<shift>键则生成正圆形,而不是椭圆形。
注意保持该圆形在蓝色的方框内部(这个蓝色的矩形框表示你的作品的可视区域)。
注意,如前面的如果你不满意画出的圆形,从菜单栏中选“编辑>撤销”命令即可取消操作。
VisualBasic6.0简明教程Visual Basic 6.0简明教程一、Visual Basic 6.0 概况Visual Basic 6.0简称VB6,是Visual Studio 6.0开发产品系列中的一员,该产品系列的成员有VC6、VFoxpro6、VinterDev、VJ++6等,基本上涵盖了Windows软件开发的方方面面。
其中VB更是其中用户喜爱的开发工具,它既是一种编程语言,同时也是一个强大的集成开发环境。
作为语言,它的语法简单、容易入门,作为开发环境,功能强大,操作便捷、自然;其面向对象的开发模型和思路能够充分解放程序员的想象力。
在VB5的基础上,Visual Basic 6.0又增加(增强)了许多特性,如:函数可以返回数组、本地代码编译(运行速度更快)、ActiveX编程;编写DHTML应用程序、服务器端的IIS 程序;升级了ComCtl32.ocx 和ComCt232.ocx等通用控件;集成的和MS-SQL连接和调试的能力;……相对于VB5,VB6增加(增强)了很多向导,例如:制作应用程序安装向导、数据对象向导、数据窗体向导、外接程序设计器、类生成器实用程序等等。
充分利用这些特性,会让你得心应手,事半功倍。
本文旨在让没有接触过VB的朋友能快速入门、以最新版本VB6帮助他们在尽可能短的时间内学会使用VB编程;同时让已经入门的朋友能在新版本中得到进一步提高。
二、Visual Basic 6.0 IDE(集成开发环境)VB6的开发环境和VB5基本类似。
程序一运行,就进入IDE环境。
我们经常要与IDE打交道,无论是设计窗体、控件、还是编写代码、调试程序,都要通过它来达到。
请一定要熟练的掌握IDE的操作要领。
下面对VB6的IDE界面给予简单的介绍,具体的操作请您自行反复尝试、练习,而这也是熟悉VB,掌握VB的不二法门。
(1)[新建工程]: 在[文件]主菜单下的命令,用于建立一个新的VB工程。
Atmel Studio 6.1简易使用教程 1 新建工程2 工程命名,以LED闪烁为例3 选择目标芯片,本例选择AT32UC3A02564 工程创建完成,在生成的main函数里编写相应代码5 Atmel Software Framework(简称ASF)为不同的MCU提供软件驱动和库来加快开发过程,ASF的架构如下图Your application对应要实现的软件应用Utilities对应开发工具和宏Boards对应开发板或者用户自定义板ASF由Drivers、Components和Services三部分组成:①Drivers对应片上设备的驱动,如ADC、FLASH、GPIO、INTC、PM、PWM、USART等②Components对应外设驱动,如存储器、显示屏、传感器等③Services对应FAT文件系统、DSP库、USB等6 导入ASF。
进行开发时,借用官方提供的驱动,可以大大简化开发进程在此添加Drivers/GPIO点击Apply将选择的模块添加到工程中7 此时编译发现报错双击错误进入错误位置查看Output,发现问题出在编译startup_uc3.S 文件时出现重复定义错误问题的原因在于:startup_uc3.S 文件是Atmel 官方自定义的启动文件,并非标准启动文件(crt0.o,指定main 函数的入口地址),在工程属性里应该设置不使用标准启动文件,否则就会出现重复定义的错误。
解决:在工程目录中右键选择工程属性再次编译,成功通过_start 和_stext 在startup_uc3.S 文件中重复定义,第一次定义在crt0.o 文件中8 在main函数中编写相应代码,实现LED闪烁控制。
9 编译通过后,将生成的.hex或.elf烧写文件下载到flash中看运行结果。
一、建议工程文件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是文件存放位置,自己选择合适的位置即可。
点击下面的OK3. 下面接着是单片机型号选择界面,选择合适的单片机就可以了。
建立一个工程文件AtmelStudi6.0这个全新的环境使用起来极其不顺手,因为首先我对AtmelStudio以前的版本也根本没有使用经验,就根据很陌生,其次,这个新版本软件还根本没有人用,根本没有任何的相关教程资料,唯一可以参考的只是官网的比较简单的视频教程,还是英文讲解,反正没怎么搞透。
不过还是硬着头皮用下去,因为软件是免费的,而且当后来我知道代码编辑环境其实就是微软VS环境的时候,我就更不犹豫了,大家应该都了解VS的代码编写环境是很智能的,尤其自动补全功能。
现在,我已经能很熟练的使用AtmelStudio6.0软件了,随着使用我也更加喜欢玩A VR 单片机做一些小作品了,而不再用普通51和STC了。
当使用熟练以后也就感觉到其实这个免费智能的编译环境其实是很简单的,那现在我就帮助更多喜欢使用A VR而没用使用AtmelStudio软件的同学们轻松越过这一个门槛,进入一个美好的编程世界。
该软件的不足之处:一是软件相对较大,打开比较慢,但是运行还是比较顺利的;二是不支持山寨仿真器,这可苦了没钱的劳苦电工们了。
(不过我都是用ISP烧录调试,一般不用仿真)最下面附件有一个简单的LED_test工程文件,编译通过的。
大家可以试用。
下面开始介绍的软件工程的建立。
1. 软件总界面总体界面还是比较简洁的,和其他编译软件都是差不多的,而且和KEIL软件的界面是很相似的,使用很方便。
2. 新建工程新建工程很简单:FILE->NEW->Project 然后就看到下面的新建工程界面了,选择第一个GCC C Executable工程就可以,第二个GCC C static Library 是用来新建 .h文件的。
然后下面蓝圈1是C文件的名称,蓝圈2 Solution Name 是工程的文件,中间的Location是文件存放位置,自己选择合适的位置即可。
点击下面的OK3. 下面接着是单片机型号选择界面,选择合适的单片机就可以了。
一、建议工程文件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是文件存放位置,自己选择合适的位置即可。
点击下面的OK3. 下面接着是单片机型号选择界面,选择合适的单片机就可以了。
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]={……};二、工程文件的优化设置点击工程项目,properties 进行设置定位代码地址,bootloader是必须的,其它程序也可能需要在“属性”里设置晶振频率(这也是预设计的#define...)设置头文件路径设置需要生成的文件(设置生成文件hex)设置优化率添加自定义库更换为WinaAvr 编译条件的设置设置芯片设置仿真器(我没有使用仿真器,设置为Simulator)三、从ICC_A VR_到_Atmel_Studio_6以前一直在用ICCA VR 感觉生成文档方便,现在发现了Atmel Studio 6, 因为偶尔会用C#(VS2010)所以一下子就喜欢上了这个编译器,我只用8bit 的A VR 另外也是刚刚接触,所以在移植过程中会遇到各种问题,以下是自己的一些问题写出来共大家参考;1.MCU必须的头文件例如在ICC A VR(以下简称ICC)中使用#include <iom16v.h>或#include <iom128v.h>,要根据不同的mcu 型号选择头文件。
而在Atmel Studio 6 (以下简称AS6)中统一用#include <avr/io.h>。
(ICC A VR 7 的版本中也可以用统一的头文件了)2.头文件<macros.h>在ICC 中,头文件<macros.h>包含#include <A VRdef.h>。
在A VRdef.h 中,宏定义了一些常用的汇编指令和一些不常用的函数。
例如:(详细内容请参考ICC 安装程序中A VRdef.h)#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));在A S6 中,你可以直接使用asm("xxx")格式.或者用小写的sei();(当然要包含相应的头文件);Ps:如果移植ICC的代码比较麻烦,可以将这些宏命令添加到一个总的头文件(include.h) 中,所有c 文件都引用include.h,那么在移植过程中,将不需要修改代码。
3.延时函数在ICC中,delay延时函数,需要自己写,往往不准。
而在AS中,只需要加载一个头文件#include <util/delay.h>,就可以使用两个标准的延时函数,分别是_delay_ms(double __ms)和_delay_us(double __us),虽然参数为double型,但可赋整型值。
注意在调用前定义#define F_CPU 16000000UL(我也不知道为什么要加UL),这样延时10ms的函数写为_delay_ms(10)。
4.中断函数例如T0 溢出中断,在ICC 中如下定义:#pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVFvoid timer0_ovf_isr(void) {…}timer0_ovf_isr 这个函数名是自定义的。
而在A6中,需加载头文件#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中写入一个字节在AS6中,加载头文件#include <avr/eeprom.h>后,可以使用如下两个读写函数:_EEGET(var, addr) ; //读EEPROM中的一个字节_EEPUT(addr, var) ; //向EEPROM中写入一个字节Ps:为了移植时不修改代码,我的做法是在总的头文件(include.h)中添加以下宏定义:#define EEPROM_read(addr, var) _EEGET(var, addr)#define EEPROM_write (addr, var) _EEPUT(addr, var)6.定义数据在flash区主要用于在字符点阵或图形点阵数据存放在flash区,这样可以减少data区的使用,不至于使data区溢出.在ICC中,用const关键字定义变量,并在ICC软件设置项中,勾选treat "const" as __flash即可。