打印

难道这ACC用法不对?

[复制链接]
761|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangpe|  楼主 | 2019-2-15 11:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sbit ACC_7 = ACC^7; //先定义

for ( i=8; i>0; i-- )
{
ACC_7=DIO;
SCLK = 0;
ACC=ACC>>=1;
SCLK = 1;
}
其中DIO是单片机引脚,用ACC_7读出的数值
是FF,但是我用if语句判断引脚,不用ACC_7读就是对的
,难道这ACC用法不对?
沙发
yufe| | 2019-2-15 11:45 | 只看该作者
sbit ACC_7 = ACC^7; //先定义

for ( i=8; i>0; i-- )
{
ACC_7=DIO;
SCLK = 0;
ACC=ACC>>=1;
SCLK = 1;
}
其中DIO是单片机引脚,用ACC_7读出的数值
是FF,但是我用if语句判断引脚,不用ACC_7读就是对的
,难道这ACC用法不对?

使用特权

评论回复
板凳
langgq| | 2019-2-15 11:50 | 只看该作者

这里可能for ( i=8; i>0; i-- ) 会用到ACC,这样就会覆盖下面的ACC值

C里面一般不要去操作寄存器

使用特权

评论回复
地板
wangzsa| | 2019-2-15 11:54 | 只看该作者
用了C,除非你特牛,否则动到寄存器,死得难看。

使用特权

评论回复
5
zhuww| | 2019-2-15 11:57 | 只看该作者
要在C语言中直接访问工作寄存器(R0~R7,A,B等等),你就得考虑后果。

使用特权

评论回复
6
zhanglli| | 2019-2-15 12:00 | 只看该作者

我有次用I2C用了ACC,也被囧到了。。。
结果好像改成for(i = 0; i < 8; i++)就没事了。。。- -

使用特权

评论回复
7
guoyt| | 2019-2-15 12:03 | 只看该作者

没听说过用C还要用ACC的

使用特权

评论回复
8
hanwe| | 2019-2-15 12:07 | 只看该作者
在编程的过程中,使用c语言可以便于读

使用特权

评论回复
9
yufe| | 2019-2-15 12:10 | 只看该作者
但是它不利于存储器内部的读取。

使用特权

评论回复
10
wangpe|  楼主 | 2019-2-15 12:13 | 只看该作者
看来我错了。。。

使用特权

评论回复
11
langgq| | 2019-2-15 12:16 | 只看该作者
是的 ,这个有时候也容易陷进去的啊

使用特权

评论回复
12
wangpe|  楼主 | 2019-2-15 12:19 | 只看该作者

搞定了,呵呵,犯了低级错误……结贴啦,多谢各位

使用特权

评论回复
13
angerbird| | 2019-2-19 23:08 | 只看该作者
这个代码写的有些简洁的哈

使用特权

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

本版积分规则

938

主题

9837

帖子

2

粉丝