• 单片机不同晶振怎么计算延迟时间?


    单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?  

    首先你要知道一个指令周期是几秒 算法是1/(晶振频率除以12) 然后你要知道循环究竟执行了几个指令周期

    你可以用keil里在线反汇编命令看看你的循环编译成机器语言后到底是几个指令周期 这样就知道了延迟时间 当然你取近似值也可以的 比如 for(i=0,i<255,i++){x=2} 这里x=2是一个指令周期 而执行了255次 假如你的晶振是12MHZ的 则你执行一个指令周期是1us 255次是0.255ms

    22.1184    一个指令 0.5us       1/(23/12)

    干嘛管12m是多少,就算出23M一个周期是多少,再用总时间除出来次数呗,就for循环那么多次
     
     
    9:31:16 【吐槽】小波Linux 2015/12/11 9:31:16
    12个机器周期 
    【吐槽】小波Linux 2015/12/11 9:31:30
    一个周期 0.5us
    【吐槽】小波Linux 2015/12/11 9:31:50
    1  / ( 23/12)=0.5us
    【吐槽】小波Linux 2015/12/11 9:32:15
    6us / 0.5us = 次数? 9:34:00 【潜水】青 2015/12/11 9:34:00
    是的 【潜水】青 2015/12/11 9:34:17
    还要除二 【潜水】青 2015/12/11 9:34:34
    for循环里面每次执行两天指令
    【吐槽】小波Linux 2015/12/11 9:35:40
    一个for语句  for(i=0;i<12;i++);  6us
    【吐槽】小波Linux 2015/12/11 9:35:46
    23mhz
    9:48:21 【潜水】青 2015/12/11 9:48:21
     for(i=0;i<6;i++);  【潜水】青 2015/12/11 9:49:00
    我长时间没算忘了 9:49:11 【潜水】青 2015/12/11 9:49:11
    给你查呢一下 【潜水】青 2015/12/11 9:51:01
     for(i=0;i<6;i++); 这个执行下来应该就是6.24us 【潜水】青 2015/12/11 9:51:10
  • 相关阅读:
    CodeForces 203C Photographer
    CodeForces 190A Vasya and the Bus
    CodeForces 187A Permutations
    Zoj3762 等待解决
    LA4080最短路树的应用
    uva10917 dij单源最短路预处理+构造新图(DAG)+求图上路径数
    uva11374 dij单源最短路+枚举
    LA3713 2-sat(用到两种矛盾关系)
    【算法总结】2-sat中对象的5种矛盾关系及其连边方式
    LA3211二分答案+2-sat+总结的此类问题统一建模方法
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/4954187.html
Copyright © 2020-2023  润新知