打印

影子寄存器疑问

[复制链接]
2296|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dsoyy|  楼主 | 2008-8-28 16:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看到张明峰书上关于“读-修改-写”的话题,如果哦把这个换成C来写是不是这样:

例如:RB5,RB6,RB7输出高电平,影子寄存器C写法:

TRISB &= 0X1F;  //输出

PORTB |= ~0X1F;//RB5,RB6,RB7输出高电平

这样子对吗?

此外还有一个疑问,就是关于T0预分频器,如果写TIME0将清0预分频器,是不是此后程序就相当于不分频了?如果这样预分频在操作TMR0后相当于没有任何作用了?
沙发
yewuyi| | 2008-8-28 17:45 | 只看该作者

影子在哪里?

使用特权

评论回复
板凳
xieyuanbin| | 2008-8-28 20:41 | 只看该作者

PORTB=PB_TEMP

使用特权

评论回复
地板
dsoyy|  楼主 | 2008-8-28 22:09 | 只看该作者

3楼

是不是这样:
TRISB &= 0X1F;  //输出


PB_TEMP = 0Xe0;//RB5,RB6,RB7输出高电平
PORTB=PB_TEMP;

还有预分频的问题呢?

使用特权

评论回复
5
su_mj000| | 2008-8-29 00:07 | 只看该作者

所谓的“读-修改-写”也可理解为“读出-运算-回写”

这是指一条指令(如:[XORWF PORTB, F])的运行过程,而不是C语言的问题。

使用特权

评论回复
6
dsoyy|  楼主 | 2008-8-29 08:51 | 只看该作者

楼上

“读-修改-写”确实不是C语言问题,我想在每个程序中都用程序尽量避免这种问题。
我在操作A0口时,A3也发生了变化,疑似出现了这样问题,最后发现我没有把A口设置成数值口,但是也发现爱你自己没有理解“影子寄存器”用C怎么样使用?

使用特权

评论回复
7
yewuyi| | 2008-8-29 09:05 | 只看该作者

就是增加一个RAM做缓冲嘛。。。

使用特权

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

本版积分规则

144

主题

566

帖子

3

粉丝