查看: 1370|回复: 0

使用Atmel Sudio6和ASF创建项目

[复制链接]
  • TA的每日心情
    奋斗
    2019-12-1 10:07
  • 签到天数: 1617 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2015-1-6 10:17:19 | 显示全部楼层 |阅读模式
    分享到:
    AS6的一个特色是比较慢,这是因为它集成了太多功能,特别是ASF(Atmel Software Framework)。前面介绍过在AS4中使用传统的方法开发ATmega328p,所以这一篇就介绍使用ASF的方法。
    首先,在AS6中创建一个新项目。创建时,选择GCC C Executable Project或者GCC C++ Executable Project。如果直接选择Atmel Studio Solution,那么还需要在添加项目文件,麻烦了一些。


    选择好项目文件的位置后,就是选择芯片的型号,这里当然选择ATmega328P。选择芯片时有个小技巧,在右上角的过滤栏输入芯片型号的几个字符,就能快速过滤,比从列表中慢慢找要方便多了。


    选择芯片并确定后,就会自动创建项目,并打开主程序文件。这时项目中只有一个程序源文件,其它都是项目配置文件。


    如果直接在这里开始写代码,就和AS4中差不多。除了编辑器功能强了,速度却慢了很多,这样是不能发挥出AS6的优势的。所以下面就是使用ASF了。先按下快捷键Alt+W选择ASF Wizard(ASF向导),这时会提示需要先选择板卡。


    确定选择后,选择User Board Template - megaAVR,因为也只有这一个选择。


    再就是一路next,最后Apply。


    到这里,就会生成基本的ASF框架,下一步就是选择需要的模块了。


    我们先做一个延时加LED闪烁的简单程序,正好和AS4下的程序做个对比。因此选择了Delay routnes和GPIO - General purpose Input/Output两个模块。


    点击Apply,确定选择的模块。这时会先提示将添加的模块和文件,然后就会自动添加选择的文件。同时会在项目目录下添加src目录,src目录中还有ASF目录,里面就包含了ASF库文件。



    到了这里,就需要将原来项目文件中的主程序给删除,因为ASF在src中又自动添加了一个main.c。如果不删除原来的主程序,就会有两个main函数了。删除后,所有的程序文件就都在src目录下。src目录下有ASF目录,存放系统文件,不要随意添加删除文件;还有一个config目录,通常存放系统配置文件;用户文件可以存放在src下和另外的子目录中。


    然后就是写代码了。下面是简单的测试程序:
    #include <asf.h>#define LED    IOPORT_CREATE_PIN(PORTB, 5)int main (void){        // Insert system clock initialization code here (sysclk_init()).        board_init();                delay_init();        ioport_init();                ioport_set_pin_dir(LED, IOPORT_DIR_OUTPUT);        // Insert application code here, after the board has been initialized.        while(1)        {                ioport_toggle_pin_level(LED);                delay_ms(500);        }}为了使用Delay函数,需要先调用delay_init()。同样使用GPIO也需要先调用ioport_init()。然后就是设置IO的输入输出,最后就是翻转LED和延时了。这些函数看起来还是很直观的,看函数名就知道大概的功能了。
    使用ASF后,对程序的效率影响有多大?会不会浪费很多程序空间。先看看编译的结果:


    AS4下编译结果是占用Flash空间164字节,AS6加ASF的结果是168字节,比想象中要小。虽然可以想象到随着更多ASF模块的添加和用户程序复杂度的增加,这个差距还会增大,但是ASF的效率还是不错的。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 09:28 , Processed in 0.132029 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.