【51单片机】延时函数delay的坑——关于无符号整型数据for语句“x >= 0“变成死循环

news/2024/7/24 9:26:04 标签: 51单片机, 嵌入式硬件, 单片机

请认真看看以下延时函数是否正确,并且指出错误:(考考C语言功底)

void delay_ms(unsigned int xms) //delay x ms
{
	unsigned int x,y;
	for(x=xms;x>=0;x--)
	for(y=124;y>=0;y--);
}

废话少说,上正确代码:

void delay_ms(unsigned int xms) //delay x ms
{
	unsigned int x,y;
	for(x=xms;x>0;x--)
	for(y=124;y>0;y--);
}

原因分析:
x和y定义的是无符号整形,如果等于0的话它还在执行一次减一,以至于for变成while死循环。

我懒得写delay函数,直接去csdn嫖代码,我一直以为别人肯定是跑通了才发出来,就一直奉为圭臬。

于是我花了大量的时间去研究:
Proteus是否有问题,还加了晶振电路
在这里插入图片描述
研究Keil是否配置错误
在这里插入图片描述

重复编写代码。。。。

只能说,网上的东西是个人都能写(比如像我这种废物csdn就有好几万的访问量,经不住考验,一定要持有怀疑的态度。也请大家以后把代码跑通了再发上去吧,毕竟像我这种新手真的很痛苦。


http://www.niftyadmin.cn/n/5314203.html

相关文章

基于apache的http文件服务配置

背景: 公司的产品使用的第三方模组可以OTA,厂家提供的是window开启软件,这样就可以在本机做http下载服务器,然后使用端口映射的方式,公开到外网,这样就可以进行4G网络访问内网服务器了。但这个有个弊端&am…

WPF真入门教程26--项目案例--欧姆龙PLC通讯工具

1、案例介绍 前面已经完成了25篇的文章介绍,概括起来就是从0开始,一步步熟悉了wpf的概念,UI布局控件,资源样式文件的使用,MVVM模式介绍,命令Command等内容,这节来完成一个实际的项目开发&#…

微信小程序canvas画布实现矩形元素自由缩放、移动功能

获取画布信息并绘制背景 .whml <canvas class"canvas" type"2d" id"myCanvas" bindtouchstart"get_rect_touch_position" bindtouchmove"move_or_scale" bind:tap"finish_edit_check"/> .wxss .canvas{…

Vue 缓存Hook:提高接口性能,减少重复请求

前言 在开发 Web 应用时&#xff0c;我们经常会遇到需要重复调用接口的场景。例如&#xff0c;当用户频繁刷新页面或进行某个操作时&#xff0c;我们可能需要多次请求相同的数据。这不仅会增加服务器负担&#xff0c;还会导致用户体验下降。为此&#xff0c;我们可以使用缓存机…

Redis的实现一:c、c++的网络通信编程技术,先实现server和client的通信

由于&#xff0c;本人是主修java的&#xff0c;所以以下内容可能不是很精通&#xff0c;各位看完后尽可评论。 以下皆是在linux的描述 第一步&#xff0c;通过socket拿到fd Socket()函数&#xff1a;创建用于通信的端点并返回描述符。 int fd socket(AF_INET, SOCK_STREAM…

自定义 bert 在 onnxruntime 推理错误:TypeError: run(): incompatible function arguments

自定义 bert 在 onnxruntime 推理错误&#xff1a;TypeError: run&#xff08;&#xff09;: incompatible function arguments 自定义 bert 在 onnxruntime 推理错误&#xff1a;TypeError: run(): incompatible function arguments推理代码错误提示核心错误 解决方法核对参数…

sqlalchemy expire_all 方法详解,强制刷新会话缓存

在 SQLAlchemy 中&#xff0c;expire_all() 方法是 Session 类的一个重要方法&#xff0c;用于使会话&#xff08;Session&#xff09;中所有当前加载的对象过期。这意味着下次访问任何已加载对象的属性时&#xff0c;SQLAlchemy 将从数据库中重新加载这些对象的最新状态。这是…

计算机网络(湖科大)第一章 概述

文章目录 &#x1f4e3;1.1 计算机网络在信息时代的作用&#x1f4e3;1.2 因特网概述✨1.2.1 网络、互联网和因特网✨1.2.2 因特网发展的三个阶段✨1.2.3 因特网的标准化工作✨1.2.4 因特网的组成 &#x1f4e3;1.3 三种交换方式✨1.3.1 电路交换&#xff08;Circuit Switching…