[技术问答] 76E003频率问题

[复制链接]
2153|13
 楼主| zxh11d 发表于 2018-4-4 10:24 | 显示全部楼层 |阅读模式
void main (void)
{
//        unsigned char temp;
        Set_All_GPIO_Quasi_Mode;                                        // Define in Function_define.h
       
        P01_PushPull_Mode;
         
  while(1)
  {
                P01 = !P01;
  }
}


上面这个程序,测出P01口的翻转速度是0.5US左右,这是不是说明系统工作频率只有2MHZ呢,有什么办法可以提高这个速度到16MHZ呢?
小明的同学 发表于 2018-4-12 17:00 | 显示全部楼层
不知道用那么高频率做什么工作,如果真需要,那就换更高频率的芯片。
小明的同学 发表于 2018-4-12 17:01 | 显示全部楼层
还有你换成
P01=0;
P01=1;
试试
antusheng 发表于 2018-4-13 17:20 | 显示全部楼层
你看看汇编代码。
598330983 发表于 2018-4-14 16:39 | 显示全部楼层
好像系统时钟是16M,但是你执行指令肯定不会16, 你查看一下编译后的汇编代码,看看是多少条。
598330983 发表于 2018-4-14 17:26 | 显示全部楼层
这个要看汇编代码,一个时钟执行一条,你要看你实现这个用了多少条
huangcunxiake 发表于 2018-4-15 08:50 | 显示全部楼层
呵呵,楼主是不是以为你一条C指令只消耗一个时钟周期呢?你不知道while体本身就消耗好几个吗
gejigeji521 发表于 2018-4-15 10:31 | 显示全部楼层
这个芯片本身是16M的内置振荡器,你用了循环体想达到这个是不可能的。因为循环体和你的语句都要很多条汇编指令执行。
pmw_56 发表于 2018-4-15 15:46 来自手机 | 显示全部楼层
MCU指令周期与主频率周期不一回事
幸福小强 发表于 2018-4-15 22:48 | 显示全部楼层
楼主还不懂单片机执行的整个过程啊。
小灵通2018 发表于 2018-4-15 23:08 | 显示全部楼层
2M已经很快了。
gx_huang 发表于 2018-4-16 09:13 | 显示全部楼层
我进来看,是看看是否有人在骂LZ呢,还好,本论坛比较文明含蓄。
mintspring 发表于 2018-4-16 11:53 | 显示全部楼层
确实有个办法,就是你搞一堆
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;
P01=0;
P01=1;

这样用于while循环体实现的汇编就占比小了。
zhuomuniao110 发表于 2018-4-16 15:48 | 显示全部楼层
不是这么操作的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

113

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部