找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2272|回复: 1
收起左侧

单片机处理while语句很慢吗?

[复制链接]
ID:71542 发表于 2015-1-3 12:18 | 显示全部楼层 |阅读模式
编了个流水灯程序 代码如下  左移比右移频率快


#include <reg51.h>
void main()
{
        unsigned int i,j=0;
        P1 = 0x00;
        while (1)
        {                       

                                           P1 = 0x80>>++j;//依次右移0~7位
                                        for(i=0;i<20000;i++);
                                        
                                        if(j==7)
                                        {
                                                while(j!=0)
                                                {
                                                P1=0x80>>--j; //依次右移7~0位
                                                for(i=0;i<20000;i++);                       
                                                }
                                        }
        }
}


debug 后发现 就是第二次右移7~0位时比上面多了个 while(j!=0)导致的频率不一致  延时时间在50ms以上   

单片机处理 while语句就这么慢?
回复

使用道具 举报

ID:1 发表于 2015-1-5 22:11 | 显示全部楼层
建议 反汇编看一下汇编的代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表