延时函数如何延时

延时函数如何延时延时函数如何延时**函数样例编译软件编译后的汇编指令Delay_ms(200);…

大家好,又见面了,我是你们的朋友全栈君。

延时函数如何延时

**函数样例                                                             编译软件编译后的 汇编指令
Delay_ms(200);                                         //     1、 0x0000058C 20C8      MOVS     r0,#0xC8
void Delay_ms(unsigned int time)
{
    unsigned char  n;
   while(time>0)                                               //       3、0x00000210 2800      CMP      r0,#0x00                                                                             
    {
			for(n=0;n<4;++n)                                  //      4、 0x00000204 2100      MOVS     r1,#0x00
			{                                               //   5、 0x00000206 1C49      ADDS     r1,r1,#1
				;                                           //  6、 0x00000208 B2C9      UXTB     r1,r1
				                                            // 7、 0x0000020A 2902      CMP      r1,#0x02
				                                           //    8、 0x0000020C D3FB      BCC      0x00000206
				                                           //    9、 0x0000020E 1E40      SUBS     r0,r0,#1
			}
			time--;                                    //     2、  0x00000202 E005      B        0x00000210
		}
}

所需要了解的信息
1、每一条汇编指令需要占用几个时钟周期,方便计算多少时间
2、时钟周期为1M时,其倒数为时间1us

文字解释

程序进入Delay_ms(200)延时函数后,其对应汇编指令运行顺序为1——2——3——4——5——6——7——8——9
其中的for空循环的汇编指令为5、6、7、8、9这四条,进入for循环这四条指令的运行次数为4(来源于自己设置的n<4)
本函数中对应的汇编指令一般占用一个时钟周期,其中第2和8条为跳转指令,占用2个时钟周期,本函数程序其硬件时钟设置为22MHz,故延时函数时间为(10+8*(n-1))*(1/22M)us

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151107.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 黑马程序员c++课件_黑马java课程大纲

    黑马程序员c++课件_黑马java课程大纲前言:**配套视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=16795623907667609637只是为方便学习,不做其他用途,在此发布C++基础入门部分配套讲义,原作者为黑马程序C++核心编程本阶段主要针对C++面向对象编程技术做详细讲解,探讨C++中的核心和精髓。1内存分区模型C++程序在执行时,将内存大方向划分为4个区域代码区:存放函数体的二进制代码,由操作系统进行管理的全局区:存放全局

    2025年11月6日
    3
  • python画等边三角形_四边形的画法

    python画等边三角形_四边形的画法python是编程语言,学习它只是因为要搞深度学习,其实语言类只要精通一种即可,但一定是精通,像我就是啥都知道,啥都不精,到最终一事无成。在学Python的时候,无意间看到网上有小游戏开发,于是乎就想自己调试下。第一个接触的例程是画国旗的。画国旗必然要画框,画框也就是画四边形,要画五角星,而五角星就是也是由三角形组成的,因此画一面很完美的五星红旗,则基础需要画四边形和三角形。OK,让我们一起来玩

    2022年9月19日
    4
  • [CF1105D]Kilani and the Game

    [CF1105D]Kilani and the Game

    2021年6月29日
    88
  • 通用代码高亮插件(SyntaxHighlighter)

    通用代码高亮插件(SyntaxHighlighter)写这篇博文的起源是我想把自己的博客弄的更加美观,相信你也一样。        首先,我要说SyntaxHighlighter插件的实现方式及应用示例,然后再说明如何将其应用到自己的博客,使博客的代码着色更加美观。 源码: SyntaxHighlighter 示例源码下载SyntaxHighlighterSyntaxHighlighter源码下载1)        Sy…

    2025年6月17日
    2
  • vue.js 渲染函数_Vue.js的不可渲染且可扩展的RTF编辑器[通俗易懂]

    vue.js 渲染函数_Vue.js的不可渲染且可扩展的RTF编辑器[通俗易懂]vue.js渲染函数轻按(tiptap)Arich-texteditorforVue.js.Vue.js的富文本编辑器。Viewdemo查看演示DownloadSource下载源什么是无renderless?(Whatmeansrenderless?)Withrenderlesscomponentsyou’llhave(almost)…

    2025年10月25日
    3
  • Git教程 SSH keys配置[通俗易懂]

    SSH为SecureShell的缩写,由IETF的网络小组(NetworkWorkingGroup)所制定;SSH为建立在应用层基础上的安全协议。在管理Git项目上,有两种克隆到本地的方法。直接使用httpsurl克隆到本地使用SSHurl克隆到本地  这两种方式的主要区别在于:使用httpsurl克隆对初学者来说会比较方便,复制http…

    2022年4月11日
    66

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号