avr单片机开发入门

来源:互联网 发布:美萍进销存软件使用 编辑:程序博客网 时间:2024/06/09 14:15

偶然的机会,然我有机会接触到atmel32单片机开发,真正上手也就用了2天的时间,而且本身这个芯片大规模使用也已经是5,6年前的事情了,但我觉得这东西不错,在很多场合,比如工控设备,智能家电,智能玩具中还有很大的应用前景,所以就把它开发过程中遇到的一些问题记下来,好给后来人提供有益的提示。
1, 烧片子选用avrisp时,对新片子中唯一要修改的配置项,就是时钟来源,比较恰当的选择是从片内RC振荡改为外部晶体,其它熔丝设置无需修改,就可以烧片子了,用usb线时,avrisp不用外接电源,但片子一定要有5伏电压供电,振荡器处于工作状态。烧片子不成功的原因有如下几种:host没有正确安装usb驱动(安装avr studio过程中,会有提示是否安装该驱动),管脚选用不当,复位脚电平不对,振荡模式不对,晶振不工作,复位电压设置不对,电压不正常。
2, 对C比较熟悉的同学,建议选用最新版的avr studio+WinAvr开发,另外找些比较好用的avr lib,可以省很多不必要的开发过程。c中常用的标准库一般都可以正常使用,开发逻辑过程和一般的应用软件没太大差别。std c中所有的数据类型也都能支持。唯一要特别注意的是整数类型数据宽度,整数为16位,长整型为32位,单片机的栈非常有限,所以不要在一个函数段内放置太多的局部变量,代码工作异常建议用汇编模式调试,可以明白很多问题。
3,网上的例子不能正常工作很有可能是和硬件设计不同,试着改变触发条件,管脚信息,也许问题就能很容易的解决。
4,当软件上调试遇到问题的时候,多借助逻辑分析仪,分析输入,输出波形,看看是否和自己预期的一样。
5,Basic Stamp单片机是很好的一个单片机,开发非常简单,但性能太次,对一些时间要求比较严格的功能比如串口数据的大规模传输,选择BS是无法实现的,这时只能考虑avr或其它高性能的片子。

原创粉丝点击