打印
[应用相关]

ACC的用法问题请教

[复制链接]
749|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Listate|  楼主 | 2017-3-15 20:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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用法不对?
沙发
Mozarts| | 2017-3-15 20:47 | 只看该作者
这里可能for ( i=8; i>0; i-- ) 会用到ACC,这样就会覆盖下面的ACC值

使用特权

评论回复
板凳
_gege| | 2017-3-15 20:49 | 只看该作者
C里面一般不要去操作寄存器。。。

使用特权

评论回复
地板
戈卫东| | 2017-3-15 20:54 | 只看该作者
难道这ACC用法不对?。。。。。。你说的对,你这ACC用法不对。

使用特权

评论回复
5
Edisons| | 2017-3-15 20:57 | 只看该作者
用了C,除非你特牛,否则动到寄存器,死得难看。

使用特权

评论回复
6
戈卫东| | 2017-3-15 20:59 | 只看该作者
   unsigned char data_read = 0;  /* 你要学会定义变量 */
   for ( i=8; i>0; i-- )
   {
        data_read >>= 1;
        if (DIO)
       {
             data_read |= 0x80;
       }
       SCLK = 0;
       SCLK = 1;
   }

使用特权

评论回复
7
laozhongyi| | 2017-3-15 21:01 | 只看该作者
要在C语言中直接访问工作寄存器(R0~R7,A,B等等)

使用特权

评论回复
8
wanglaojii| | 2017-3-15 21:08 | 只看该作者
我有次用I2C用了ACC,也被囧到了。。。

使用特权

评论回复
9
zhouhuanの| | 2017-3-15 21:09 | 只看该作者
个人觉得你可以看下编译的汇编程序找找问题。。

使用特权

评论回复
10
handleMessage| | 2017-3-15 21:14 | 只看该作者
楼主这是什么芯片的呀?

使用特权

评论回复
11
bbapple| | 2017-3-15 21:15 | 只看该作者
这好像是51中的芯片,51中才有ACC这个寄存器的。

使用特权

评论回复
12
天灵灵地灵灵| | 2017-3-15 21:22 | 只看该作者
51单片机的吧,能避免直接操作这些的,就避开。

使用特权

评论回复
13
coody| | 2017-3-16 17:43 | 只看该作者
LZ是51芯片的话,原则上这样操作是没有问题的,但是你有for循环,这个要用到ACC,所以你就悲剧了。51的可以整这样,快速。我经常这样省时间。
ACC_7=DIO; SCLK = 0; SCLK = 1;
ACC_6=DIO; SCLK = 0; SCLK = 1;
ACC_5=DIO; SCLK = 0; SCLK = 1;
ACC_4=DIO; SCLK = 0; SCLK = 1;
ACC_3=DIO; SCLK = 0; SCLK = 1;
ACC_2=DIO; SCLK = 0; SCLK = 1;
ACC_1=DIO; SCLK = 0; SCLK = 1;
ACC_0=DIO; SCLK = 0; SCLK = 1;

但是LZ发的是ST MCU模块,用的是ST的MCU?。。。。

使用特权

评论回复
14
cemaj| | 2017-3-16 21:22 | 只看该作者
STM32不能使用ACC

使用特权

评论回复
15
cemaj| | 2017-3-16 21:23 | 只看该作者
这个应该是51单片机上的。

使用特权

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

本版积分规则

161

主题

1233

帖子

1

粉丝