打印

问2个简单问题

[复制链接]
1380|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mugenwon|  楼主 | 2007-8-27 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1,8位51 mcu,定义32位的数据,之后对该数处理出个位到十万位(6个数字),本人用除和求余的方法,想问问有什么更加快的方法?

2,mcu同上,定义数据unsigned char xdata,对该数据作串行移位输出,发现速度奇慢无比,程序如下。有什么高效率的方法?

for (j=0;j<8;j++)
{    temp[0][1]=temp[0][1]>>1;
    do4094a=CY;
    temp[1][1]=temp[1][1]>>1;
    do4094b=CY;
      temp[2][1]=temp[2][1]>>1;
    do4094c=CY;    
       temp[3][1]=temp[3][1]>>1;
    do4094d=CY;
    _nop_();
    _nop_();
    clk4094=c1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    clk4094=c0;
}

相关帖子

沙发
xzhenggen| | 2007-8-28 08:09 | 只看该作者

定义数据unsigned char idata就不会慢了.

使用特权

评论回复
板凳
popmu| | 2007-8-28 08:37 | 只看该作者

定义数组会快点

使用特权

评论回复
地板
gjg191| | 2007-8-28 08:58 | 只看该作者

dd

片外当然慢了!

使用特权

评论回复
5
mugenwon|  楼主 | 2007-8-30 19:01 | 只看该作者

必须用xdata

如果能用片内当然快,问题就是内存不足,必须用xdata。
而且我发现只要用for,就会很慢。如果加多一层for嵌套,就更加慢!
打算用汇编了。

使用特权

评论回复
6
一级菜鸟| | 2007-8-30 19:23 | 只看该作者

修改成一维数组会快很多,DPTR只有一个,这么整MCU,人家会

使用特权

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

本版积分规则

96

主题

430

帖子

3

粉丝