主题 : 关于2440 LED裸机程序的不解 复制链接 | 浏览器收藏 | 打印
1212123
级别: 新手上路
UID: 103195
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2014-04-19
最后登录: 2014-12-18
楼主  发表于: 2014-05-15 01:06

 关于2440 LED裸机程序的不解


刚接触2440开发板不久,这两天在研究LED裸机程序其中有一段代码是这样的
复制代码
  1. rGPBCON = 0x155555;

复制代码
看过一些类似的代码备注是说:配置所有的引脚为输出,为什么为0x155555的时候所有的引脚就为输出了?输出是处于什么状态?
复制代码
  1. data = 0x06;
  2. rGPBDAT = (data<<5);

复制代码
这段代码又是怎么实现LED的灯的点亮的?(而且是点亮两个LED)
复制代码
  1. data =~data;
  2. rGPBDAT = (data<<5);

复制代码
这个又是怎么实现灯的变化的?
求指导!!!!  



1212123
级别: 新手上路
UID: 103195
精华: 0
发帖: 26
金钱: 130 两
威望: 26 点
贡献值: 0 点
综合积分: 52 分
注册时间: 2014-04-19
最后登录: 2014-12-18
1楼  发表于: 2014-05-15 01:10
是光盘里myled的main文件,改成txt文件上传
附件: main.txt (1 K) 下载次数:2
级别: 新手上路
UID: 104109
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2014-05-14
最后登录: 2017-09-13
2楼  发表于: 2014-05-15 10:05
基本上是硬件相关的东西,楼主可以看下数据手册。GPIO引脚配置输入输出,按照数据手册往对应的配置寄存器里面写如对应的配置,这个值是根据数据手册的说明得来的。而引脚配置为输出后,处于什么状态是由管脚对应的数据寄存器决定的,数据寄存器对应的位是1输出高电平,对应位为0,输出低电平。对于LED来说,2440接到了GPB5,GPB6,GPB7,GPB8,GPBCON寄存器里面配置这几个引脚为输出,GPBDAT寄存器对应位写1,对应的LED熄灭,写0对应的LED点亮