首先看一下GPIO的框图:
通过查看GPIO框图,我们可以得出许多信息:
DIR寄存器控制GPIO管脚是输入还是输出,其中,对应bit置0表示该管脚配置为输出管脚;对应bit置1表示该管脚配置为输入管脚。
若一个GPIO管脚配置为Output,给SET_DATA寄存器对应位置1,将使该管脚输出高电平,给CLR_DATA寄存器对应位置1,将使该管脚输出低电平。需要注意的是:向SET_DATA和CLR_DATA中写入0无作用。
若一个GPIO管脚配置为Input,可以通过读取IN_DATA寄存器中的对应位来获得管脚的状态。且向SET_DATA和CLR_DATA中写入0无作用。
若一个GPIO管脚配置为中断&EDMA事件模式,此时可以忽略该管脚的Input/Output配置。可以通过置位SET_RIS_TRIG和SET_FAL_TRIG寄存器的相应bit把GPIO管脚配置为中断/事件触发方式。如下图所示:
由于C64+的CPU无法直接访问RIS_TRIG和FAL_TRIG寄存器,若要访问中断模式的配置状态,可以通过读取SET_RIS_TRIG(SET_FAL_TRIG)或者CLR_RIS_TRIG(CLR_FAL_TRIG)来获取。
|