从ATMEL官网上把Atmel Studio6.2撸下来
这里面有个小小的插曲,用百度云等离线下载,安装之后进行程序编译
会出现一些比较奇怪的,譬如找不到系统指定路径等问题
还是下载到本地进行安装,一切正常
安装基本上是3大块:IDE环境所需的操作系统框架程序、ATMEL的u***驱动和IDE软件
很常规,基本上就是猛戳下一步,这里就不重复了
打开软件,并插上Xplained Mini,IDE很快会识别出这块kit
顺便看看键盘输入eeboard,串口输出的莫斯编码,呵呵
IDE倒是识别了,但是AS6.2里面居然没有Xplained Mini的例程
这次活动的其它板卡都有对应例程,很是不解啊。
看看这块板子的info
还是非常详细的,并且也给出了atmel官网与这块kit相关的链接,很是不错
可惜例程还是相对比较少。
这里就想着找找同系列MCU的例程
发现ATMEL最近的芯片后缀集中在P、A、PA等等
这里简单研究了一下,大概是这么回事:
A---带A的是现在ATMEL采用新工艺的料号,新工艺把以前所谓不带后缀L跟带后缀L的统一了,性能方面把以前带不带L,电压工作范围有差异,工作频率有差异都做了整合。
P---带P是指这个料号采用了ATMEL的picoPower威廉希尔官方网站
,同型号带P的会要比不带P的在相同条件下更省电。
PA---以上两者合体。
但是不要以为就完全一样咯
会有细微的差别
支持的调试器还是有一定差别的
俺们这块ATmega168 Xplained Mini板载就是mEDBG,所以芯片不能乱选
ATMEL官方的这个IDE,不支持盗版的调试器,略坑。
使用AS6.2,就不能回避ASF(Atmel Software Framework)的使用
其实就是封装好的外设库
新建工程的时候,会有5种不同的建立方式
其中第一种就是使用ASF来新建工程
点击试试
可以通过select By device和select byboard来进行选择
通过芯片选择,输入168,能够找到对应的ic
通过bordtype选择,输入168,没有对应的ATmega168 Xplained Mini 咯
只有STK600这块开发套件,应该也能用吧
点击ok后,就能看到工程和对应的main文件了
点击ok前,记得要把device和board都点一下,设置成高亮
下面是使用ASF添加相关的资源
下拉菜单Project-----ASF Wizard
ATmega168包含的驱动少的可怜,不过48、88应该也都能用
但是在更换芯片的时候,要最好重新插拔一下板卡
新片子,新开发板,先点个灯吧
ok,选中需要的驱动,Add+Apply,添加文件咯
提示框,有点不太对劲,怎么大部分都是h文件?
添加好了,看看整个工程的文件架构
基本上全部都是h文件,说好的驱动呢?说好的c呢?
原来ATMEL要走MS的路子,把所有操作都API函数封装起来
大家只要对应MCU或者板卡,把API调用就好了
至于API是怎么写的,不必去关心。
这点和微软一个样啊
但是很不解的是,这些个API函数怎么使用,找遍了ATMEL的网站
也找不到一个说明文档,只有双击AS6.2中ASF Explorer对应API Document
才能跳转到网页说明,但是也不是非常详细的说明
想想现在流行的STM等,函数库说明文档在入口参数、函数功能等方面还是非常详细的
这点,可能ATMEL还在进一步的准备中吧,期待中。
用ASF折腾了好几个小时,最后才把灯给点着,好多函数不会用,捉急啊。
上代码
- #include
- #define MY_LED IOPORT_CREATE_PIN(PORTB, 5)
- #define MY_BUTTON IOPORT_CREATE_PIN(PORTB, 7)
- #define TEST IOPORT_CREATE_PIN(PORTB, 4)
- void io_init(void)
- {
- ioport_set_pin_dir(MY_LED, IOPORT_DIR_OUTPUT);
- ioport_set_pin_dir(MY_BUTTON, IOPORT_DIR_INPUT);
- ioport_set_pin_mode(MY_BUTTON, IOPORT_MODE_PULLUP);
- }
- int main (void)
- { bool value;
- sysclk_init();
- delay_init(F_CPU);
- io_init();
- while(1)
- {
- value = ioport_get_pin_level(MY_BUTTON);
- if(value)
- {
- gpio_toggle_pin(MY_LED);
- gpio_toggle_pin(TEST);
- delay_ms(200);
- }
- else
- {
- gpio_toggle_pin(MY_LED);
- gpio_toggle_pin(TEST);
- delay_ms(50);
- }
- }
- }
[color=rgb(51, 102, 153) !important]复制代码
如果调用ASF,所有头文件都包含在asf.h中,看上去清爽多了。
ASF中提供了比较不错的延时函数,如果F_CLK设置得准确
延时相对还是比较精确的
不过话说回来,拿单片机来实现十分精确的延时,本身就不太靠谱。
第一次接触就到这吧,上个视频伺候一下:
------------------------------------------割割割--------------------------------------------------
总结一下,AS6.2启动速度比较慢,在老的xp笔记本上,基本上会使人抓狂
还好它对win8 64位支持比较好,运行十分流畅,但是不知道后期会不会出现一些
乱七八糟的问题,大家懂的。 |
0
|
|
|
|