IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx

IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx

ID:57650187

大小:148.22 KB

页数:5页

时间:2020-08-30

IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx_第1页
IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx_第2页
IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx_第3页
IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx_第4页
IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx_第5页
资源描述:

《IO-port中的GPFCON和GPFDAT寄存器(裸奔LED驱动实例).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、今天在MBA2440上做实验,通过按KEY1按钮来控制LED1开/关.按下KEY1时LED1亮,反之则灭. 因为KEY1(EINT0)连着CPU上的PORTF(GPF0).如下图所示所以我们可以通过配置GPF的寄存器,来达到控制GPF的目的.GPF有四个寄存器,GPFCON,GPFDAT,GPFUP,Reserved这四个.地址已被固定.如下图. 而GPF0-7,各自在GPFCON寄存器里有自己的位置,例如,GPFCON的第一,二位是控制GPF0的,如此类推,如下图示:因为KEY1用的是GPF0,所以我们先要将GPFCON[1:0]设为输入,即置为00.        ldrr1,=0x56

2、000050   ;//0x56000050是GPFCON寄存器的固定地址        ldrr0,[r1]        bicr0,r0,#(0x3<<0) 而LED1用的是GPF4,所以我们要将GPFCON[9:8]设为输出,即置01        bicr0,r0,#(0x3<<8)       orrr0,r0,#(0x1<<8)       //GPFCON[9:8]==>'01'configureGPF4asoutput 然后存回原位置         strr0,[r1]       //writeGPFCON 下面,通过检测GPFDAT的位,来确认KEY1有没有被按下.G

3、PFDAT是一个8位寄存器,每一位对应一个PIN的状态,例如第0位,对应的是GPF0的状态,第4bit对应GPF4的状态. 当KEY1被按下后,GPFDAT的第0位被自动设为0,松开后,自动设回1.也许这就叫低电平有效吧.按下时触发低电平...我也不太懂这个..呵呵,我是搞软件的...:P Anyway,我们可以通过这个来判断KEY1有没有被按下.检测GPFDAT的第0位. 而GPFDAT的第4位控制着LED1的开关,如果我们编程将第4位设为1,那么LED就开了,我们将第4位设0,那么LED就关了.就这么简单. 所以我们先判断第0位,第0位==0,则第4位设==1,如果第0位为1,则第四位为

4、0. 这样就实现了按下则亮,松开则灭的目的了. 这里我们可以通过一个LOOP来实现一直让它可以运行. LOOP             ldrr1,=0x56000054      ldrr0,[r1]      andsr2,r0,#0x1      ;//0&1=0,'z'(cpsr)issetto1duetotheresult0,      ;//1&1=1,'z'(cpsr)isstill0      ;//thatmeans,iflastbitofGPFDATis0,thencpsr'z'bit=1      ;//iflastbitofGPFDATis1,zbitstayssti

5、ll0            biceq  r0,r0,#(0x1<<4)           ;//accordingto'z',[3]ofGPFDATissettobe0or1,      ;//[3]bitiscontrollingtheLED1,if[3]bitis0,turnonLED      ;//ifitis1,turnoffLED      orrne  r0,r0,#(0x1<<4)     ;//[4]<==1     str    r0,[r1]      b      LOOP

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。