c语言中delay的用法。

2023-10-29

  C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现。下面小编就跟你们详细介绍下c语言中delay的用法,希望对你们有用。

  c语言中delay的用法如下:

  假设一个延时函数如下:

  void delay()

  {

  uint i;

  for(i=0;i<20000;i++);

  }

  我们怎么来算呢,先将20000转成16进制,得到4E20,然后将高字节4E乘以6得到468D,再将468+2=470,然后将470D*20HEX(即32D)=15040;所心这个延时函数总共要执行15040个周期,假设所用的晶振为12MHZ,则该段函数总延时:15.04ms。

  有了这个公式我们如果想要设定指定的延时长度就可以用它的己知公式确定。即:总时间=[(6*i值的高8位)+2]*i的低8位。

  例如:设要延时125ms。

  我们将低字节先赋值200D*(即:C8),然后再算高低节的定值,由式中可知125ms=200*((i值的高字节*6)+2),又可推算出(高低节*6)+2的总延迟时间应等于625us,将625/6=104.1666,取整数得到104,将104转成16进制得到68H,再将高字节和低字节组合起来即得到了定值,即:68C8HEX,代入函数即如下:

  void delay()

  {

  uint i;

  for(i=0;i<0x68C8;i++);

  }

 

  如果写直进行就要将68C8转成10进制,即:26824,代入后得到:

  void delay()

  {

  uint i;

  for(i=0;i<0x26824;i++);

  在c语言中嵌入一段汇编的延时程序呀,你自己看看书,很简单的

  用在单片机里的可以C和汇编混合使用,因为用汇编编写延时要准确些,所以你不妨写一个汇编程序,然后再调用它好了,要用C来编精确的延时确实是比较难的哦.呵呵

  谁说C语言不能精确延时,用51单片机的定时/计数器一或者用定时/计数器2的工作方式2,自动再装入8位计数器,就可以精确延时,别说1MS了就是100um也能精确做到。

  其实很简单,采用定时器,将需要定时时间算好后写入单片机中断程序中即可,这种方法可以实现精确定时,最终的误差仅由晶振来确定了。

  不错,用定时器最准确。但是定时器数量有限,有时候不见得能够用。比如温度检测(尤其是变化比较大、快的),一个定时器就得一直不停检测。这个时候如果另外一个定时器有正好分配的其他任务,就只有用其他方法延时了。

  空循环就行了

  如while(i--);根据i的不同决定了延时长短

  不过C的延时不是非常准确,你得根据反汇编,看汇编语句的数量和指令周期来计算时间

  也可以是

  void mDelay(unsigned int Delay) //Delay = 1000 时间为1S

  {

  unsigned int i;

  for(;Delay>0;Delay--)

  {

  for(i=0;i<124;i++)

  {;}

  }

  }

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言中delay的用法。 的相关文章

  • 毕业设计-基于街景影像中行人车辆检测方法 -YOLO

    目录 前言 课题背景和意义 实现技术思路 一 方法理论 二 试验与分析 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目
  • 特征变换:特征归一化(Normalization)作用以及方法 Min-Max、Z-Score

    为什么需要对特征数据进行归一化 1 在基于梯度下降的算法中 使用特征归一化方法将特征统一量纲 能够提高模型收敛速度和最终的模型精度 1 如上图所示 黄色的圈圈图代表的是两个特征的等高线 其中左图两个特征 X1 和 X2 的区间相差非常大 X
  • Element UI input输入框实现模糊查询

    Element UI的input输入框进行搜索的时候 根据输入内容提供对应的输入建议 有个坑 它只能用第一个字进行搜索 不能够实现模糊匹配 下面的方法就是填这个坑 原来搜 奖 后台给返回数据 但是不会出现下拉框 例如 只要搜 抽 才出现下拉
  • JAVA面试

    JAVA网络通信篇 一 TCP和UDP有什么区别 TCP为什么是三次握手 而不是两次 TCP Transfer Control Protocol 是一种面向连接 可靠的 传输层通信协议 特点 好比是打电话 面向连接的 点对点的通信 高可靠的
  • 基础笔记(二):设计模式摘录

    基础笔记 二 设计模式摘录 前言 收录一些自己在开发过程中比较常用的模式 整理出来以便自己复习 毕竟熟才能生巧 才能变通 举一反三 设计模式在大多数灵活性好 可扩展性高 可移植的优秀程序中都有运用 比如界面展现层运用的MVC模式的主要关系就

随机推荐

  • Java俄罗斯方块,老程序员花了一个周末,连接中学年代!

    Java俄罗斯方块 老程序员花了一个周末 连接中学年代 热门专栏推荐 1 Java小游戏 俄罗斯方块 飞机大战 植物大战僵尸等 2 JavaWeb项目实战 图书管理 在线考试 宿舍管理等 3 JavaScript精彩实例 飞机大战 贪吃蛇
  • 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜

    从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 目录 从零开始基于nonebot2搭建Q群机器人自动获取各大平台热搜 安装步骤 使用方法 退出方法 启用方法 参考链接 安装步骤 安装步骤如下所示 总共仅需简单的17步 1 创
  • 从库mysqldump会导致复制中断

    背景 环境 数据库版本 5 6 24 log 主从架构 一主两从搭配mha 操作步骤 1 开发要求truncate一张表 在删除之前需要备份下数据 2 在从库上使用mysqldump命令做逻辑备份 备份sql mysqldump uXXX
  • ubuntu20.04下搭建pcl安装环境

    我是小白 初学PCL 此文章用来提醒自己安装流程 同时也希望能帮助其他人一贴搭完环境 此贴安装版本为 Ubuntu20 04 6LTS ros2 foxy VTK 8 2 0 cmake 3 16 3 PCL 1 10 1 1 安装vmwa
  • Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean

    问题出现 SpringBoot工程启动不起来 报错Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
  • 虚拟服务器vps怎么扩展,vps虚拟服务器怎么用

    vps虚拟服务器怎么用 内容精选 换一换 裸金属服务器具备物理机级的性能和隔离性 用户独占计算资源 并且无任何虚拟化开销 存储在高性能高可靠的服务器上的数据 自然也会很安全 带有本地磁盘的裸金属服务器 支持本地磁盘组RAID 磁盘数据冗余存
  • SpringCloud Alibaba 组件介绍

    Spring Cloud Alibaba 一 介绍Spring Cloud Alibaba 简介 spring cloud Netflix 相关技术整体进入维护模式 Ribbon Hystrix zuul Eureka config等 sp
  • Vue课后练习题及答案解析

    Vue课后练习题 第一章 Vue js基础入门 填空题 Vue是一套构建 的渐进式框架 用户界面 MVVM主要包含3个部分 分别是Model View和 ViewModel Vue中通过 属性获取相应的DOM元素 refs 在进行Vue调试
  • html a标签去掉下划线_HTML常用标签a、img、table

    HTML常用标签 a 标签的用法 标签定义超链接 用于从一张页面链接到另一张页面 主要属性有href target download rel等 href指示超链接目标 可以取网址 相对路径 绝对路径 伪协议进行跳转 target属性规定在何
  • 【SpringBoot】最通俗易懂的任务机制(一)--异步任务和定时任务

    注 本文章基于尚硅谷Springboot高级特性相关视频及资料进行编写 代码简单 较容易理解 若有问题或者源码资料获取可以在评论区留言或者联系作者 目录 导引 异步任务 没有返回值的异步任务 有返回值的异步任务 定时任务 总结 导引 开发w
  • springboot自定义favicon.ico

    Favicon配置 说到favicon ico这个小图标 Spring Boot提供了默认的小叶子 如果大家想定制这个小图标可通过以下做法 1 application properties spring mvc favicon enable
  • QObject::connect: No such signal 原因

    QObject connect No such signal 使用connect连接信号与槽函数时 附带了信号或者槽函数的参数 编译会通过 而运行不会通过 若信号函数 void signal 1 int param 槽函数 void fun
  • ssh连接localhost失败 permission deny问题解决

    首先确认ssh 和 sshd都已经正常安装且运行 其次设置ssh和sshd的一些系统参数 基本都是修改以下这两个文件 1 etc ssh ssh config 2 etc ssh sshd config 比如permitrootlogin
  • 如何使用 docker 搭建本地 overleaf 服务器

    如何使用 docker 搭建本地 overleaf 服务器 overleaf 使用便捷 相信很多人都在上面编辑过论文 但是国内访问 overleaf 确实网速限制比较大 编译时等待时间较长 而且中文字体等配置也不是很方便 应运而生的 ove
  • 自动化测试之 Espresso VS Appium

    前言 事情的起因是这样的 相信很多人都经历过这样一个过程 一个成熟的线上app版本需要更新一个系列新功能的时候 我们上线需要完成以下几个步骤 1 测试环境下 测试人员测试新功能 并且连带需要测试线上稳定版本的主要老功能 2 确保没问题以后
  • B树与B+树

    一 B树 B 树 特点 1 多路 非二叉树 2 每个节点既保存索引 又保存数据 3 搜索时相当于二分查找 二 B 树 特点 1 多路非二叉 2 只有叶子节点保存数据 3 搜索时相当于二分查找 4 增加了相邻接点的指向指针 三 B树与B 树的
  • 决策树和 K 近邻分类

    决策树和 K 近邻分类 决策树和 K 近邻分类 决策树和 K 近邻分类 介绍 知识点 机器学习介绍 示例 决策树 如何构建决策树 熵 玩具示例 决策树构建算法 分类问题中其他的分割质量标准 示例 树的关键参数
  • CUnit的用法

    CUnit下载地址 http sourceforge net projects cunit CUnit 在线文档帮助 http cunit sourceforge net doc index html 关于CUnit 本文主要从介绍三方面的
  • Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群

    大纲一 前言二 环境准备三 Corosync 安装与配置四 Pacemaker 安装与配置五 DRBD 安装与配置六 MySQL 安装与配置七 crmsh 资源管理 推荐阅读 Linux 高可用 HA 集群基本概念详解 http www l
  • c语言中delay的用法。

    C语言作为一门新型高级编程语言 在计算机软件编程中具有较为广泛的应用和实现 下面小编就跟你们详细介绍下c语言中delay的用法 希望对你们有用 c语言中delay的用法如下 假设一个延时函数如下 void delay uint i for