打印
[ZLG-ARM]

请教zlgARM:PINSEL0=(PINSEL0&0xcffff3ff); 管教选择模块初始化

[复制链接]
3687|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liutongen|  楼主 | 2007-6-5 17:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
您好:我在做基于uc/os-II的蜂鸣器控制实验时遇到一个不解的地方,请您多多帮助!
......

#define      KEY1    (1 << 14)             /* P0.14为key1 */
#define      BEE    (1 << 7)              /* P0.07为蜂鸣器 */
......

PINSEL0 = (PINSEL0 & 0xcffff3ff);       /* 管教选择模块初始化 */

疑问:为什么用0xcffff3ff,而不是0xcfff3fff?

分析:0xcffff3ff的c代表1100,就是说将P0.14设置为IO,这是可以理解的,但其中的3代表0011,就是将P0.5设置为IO,但P0.5在该程序并不起作用,起作用的是P0.7,那么我认为应该是将0xcffff3ff改为0xcfff3fff,这样就实现了P0.14、P0.7为IO,不知那里分析错了?

还有:我将0xcffff3ff改为0xcfff3fff后运行竟也能成功,不知为何,难道该语句没起作用?

请多帮助,谢谢
    

相关帖子

沙发
liutongen|  楼主 | 2007-6-5 17:53 | 只看该作者

真的没起作用!

我将PINSEL0 = (PINSEL0 & 0xcffff3ff);       /* 管教选择模块初始化 */去掉后,发现程序照常运行,就是说这条语句没起作用,可能是管教复位后都为IO的原因吧,如果是这样的话,这条语句是不是就没必要写在程序段里了。

使用特权

评论回复
板凳
liujigan| | 2007-6-5 19:04 | 只看该作者

to

作为GPIO时可以对它们不处理,默认IO形式,只把相应的IODIR处理好就可以了

使用特权

评论回复
地板
liutongen|  楼主 | 2007-6-5 19:10 | 只看该作者

re:liujigan

谢谢了,

使用特权

评论回复
5
yulri| | 2010-9-23 20:02 | 只看该作者
好东西!!

使用特权

评论回复
6
yulri| | 2010-9-24 08:06 | 只看该作者
受教了!

使用特权

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

本版积分规则

10

主题

20

帖子

0

粉丝