打印

请教I/O寄存器问题

[复制链接]
1282|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gavin_li|  楼主 | 2009-6-26 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
自己胡乱写了个LED程序,能调试成功。但是对I/O寄存器不得其解。请版主帮解释一下
rGPBCON = 0x015550; //这里是设置B port是输出端口吧。
0X015550 = 1 01010101 01010000
这里是不是说让GPB2~GPB7 设置为Output呢?因为我从别的资料上看
每个管脚占两位。 00-代表输入 01-代表输出 10-代表中断 11-保留
我的板子LED是接在B port上的GPB5~GPB8管脚上的。所以这样就能设置为输出方式。

rGPBUP  = 0x7ff; //设置上拉电阻为disabled
0x7ff=111 11111111
这样有什么目的呢?

#define LED1                (1<<5)                // rGPB[5] =1 ;
#define LED2                (1<<6)                // rGPB[6] =1 ;
#define LED3                (1<<7)                // rGPB[7] =1 ;
#define LED4                (1<<8)                // rGPB[8] =1 ;

while (1){  
    for (k = 1; k < 5; k++){
                   switch(k){
            case 1:rGPBDAT=~LED4;break;
            case 2:rGPBDAT= ~LED3;break; 
            case 3:rGPBDAT= ~LED2;break;
            case 4:rGPBDAT= ~LED1;break;  }
            Delay(2000);             
     }
我上面的程序在AXD调试成功。我分析我的写法
LED1 = 00010000
LED2 = 00100000
LED3 = 01000000
LED4 = 10000000
~LED1 = 11101111  -----  rGPB[5] = 0  输出低电平
~LED2 = 11011111  -----  rGPB[6] = 0  输出低电平
~LED3 = 10111111  -----  rGPB[7] = 0  输出低电平
~LED4 = 01111111  -----  rGPB[8] = 0  输出低电平

正好只有一个管脚输出低电平,所以该连接该管脚的LED灯亮。
但是我注意到很多资料上,包括按键控制LED的代码都是
这样写的
rGPBDAT=rGPBDAT & ~LED4
rGPBDAT=rGPBDAT & ~LED3
rGPBDAT=rGPBDAT & ~LED2
rGPBDAT=rGPBDAT & ~LED1

但是奇怪得很,我这样写就是得不到跑马灯的效果。里面有什么
蹊跷吗?另外rGPBDAT的地址是0x56000014,它的初始值是多少呢?还是不确定?
请版主评点。

相关帖子

沙发
sz_kd| | 2009-6-26 11:42 | 只看该作者

还是根据数据手册上设置把,手册应该写得很清楚

使用特权

评论回复
板凳
gavin_li|  楼主 | 2009-6-26 12:53 | 只看该作者

你是说根据s3c2440的datasheet设置吗

使用特权

评论回复
地板
linqing171| | 2009-6-26 12:57 | 只看该作者

给你改一下。

            case 1:rGPBDAT=^LED4;break;
            case 2:rGPBDAT= ^LED3;break; 
            case 3:rGPBDAT= ^LED2;break;
            case 4:rGPBDAT= ^LED1;break;  }


还有你的delay是不是有问题啊。

使用特权

评论回复
5
gavin_li|  楼主 | 2009-6-26 13:02 | 只看该作者

我的delay没问题

void dely(int time)
{
  int i,k;
  for ( i=0;i<100;i++){
    for ( k=0;k<time;k++){}
  }   
}
我在TQ2440上调试过,没问题。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

150

帖子

0

粉丝