GBAmultiBoot时的Arduino端针脚控制的程序编写~

本文详细介绍了如何使用Arduino来控制GBAmultiBoot的端口操作,重点聚焦于Arduino的针脚定义及其在该过程中的应用。
摘要由CSDN通过智能技术生成
开始的时候我是打算用Arduion自带的库来控制针脚的,但是由于那个库里面函数为了兼容各版本的板子,所以有很多多余的代码。也因为这些代码使得执行起来会错过时钟周期,毕竟频率太快了,一个间隔只有138个时钟周期,GBA 32位NORMAL模式频率就更快。结果就只能用AVR的编程方法来写。
Arduino的针脚定义

上图可以看到芯片的针脚定义跟对应该在arduino上的引脚。比如LED是13号脚对应的是芯片的PB5。从命名上看会看到PB、PC、PD三组,别问我PA去哪了,我也不知道。我到现在只学习过PB,别的脚是不是也是这样控制我也不清楚,不过从PB来看AVR每一组针脚是由DDR、PORT、PIN三个寄存器来控制的。像Arduino的库函数digitalWrite(13)执行起来慢是因为他在函数时会去找这13号脚所对应的寄存器的地址。在平时应该的时候这点消耗可以不计,但是这回需要高速执行就不行了,会错过时序周期。
这三个寄存器每一位代表一个脚。
DDR:是设置针脚的模式,1为输出,0为输入。
PORT:的设置看DDR,如果是DDR设置为输出,这设置1为高电平,0为低电平。当针脚的模式是为输入,则1为上位输入,0为普通。具体上位输入是什么,我现在还没搞清楚,有空再实
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值