arduino 其实是针对不同的单片机,建立了arduino源代码高度兼容可移植的环境,并用C/C++为我们写好了底层驱动,确实方便了我们快速写出所需的代码。
如果我们直接用arduino发行板支持的芯片和板子来写程序,当然几乎不需要我们自己定制开发环境,系统已经帮我们做好了,但如果我们针对的不是系统支持的芯片和板子,则需要自己来写出所有底层驱动程序,好在对于arv系列,移植较为简单,如果芯片相同只是板子不同,则稍加修改就可以满足自己的需要了。
我有好几个Atmega64/128 的最小系统,直接用 arduino zion写程序当然没有问题。
1、m64/128 引脚图:
定制自己的 Atmega64/128 arduino 开发环境
2、例如 我们要点亮 PG0 上的led,可以写下这样一条语句:
digitalWrite(48,0);
其中 48 即是在arduino zion中对 PG0的编号,并已经印在arduino zion开发板上,在该板上用显然还算方便。
0 是因为我的led是经限流电阻接电源Vcc,输出低电平,就点亮了该LED,
3、但在我的最小系统上并没有标准板子那样奇怪引脚编号,用起来很不方便,要想通用于其他板子,最方便的方法就是,全部用1 引脚图中的编号对应其GPIO 端口脚号,而且该脚有什么其他功能一目了然,我想大多数坛友都会看着这张图来复用引脚的其他功能的。
4、要达到这个目的,其实很简单,只要我们修改其引脚定义文件:pins_arduino.h就可以了。把我的定义放在附件里
使用这个定义文件,PG0的编号就是芯片脚号33,因此点亮PG0上的LED变成:
digitalWrite(33,0);
对于非arduino的板子,可读性是不是强多了?
我们都已习惯了在winavr keil中开发,使用这样统一的脚编号规则,我也很快习惯Arduino中开发,我自己为这样的编号规则,给了一个不是很确切的命名:
“自然表示法”
小秘密:得到一个额外的 好处,就是导出的执行文件在proteus中模拟调试运行,引脚编号就是arduino编号,一目了然。
如无法正常下载,请点击这里报告问题,我们将在下一工作日内为您解决。
联系客服