当前位置: 首页 > news >正文

广州建设网站外包做网站的属于什么

广州建设网站外包,做网站的属于什么,黄江做网站,网站制作多少钱400(四)Protues仿真STM32单片机使用定时器控制LED – ARMFUN 定时器在单片机中具有重要的作用,它可以提供精确的时间控制和事件触发功能。相比之下,使用延时函数(delay function)来实现时间控制存在以下一些坏…

(四)Protues仿真STM32单片机使用定时器控制LED – ARMFUN

定时器在单片机中具有重要的作用,它可以提供精确的时间控制和事件触发功能。相比之下,使用延时函数(delay function)来实现时间控制存在以下一些坏处:

  1. 阻塞程序执行:使用延时函数会导致程序在延时期间无法执行其他任务,因为延时函数通常是通过循环等待一段时间来实现的。这会浪费处理器的计算资源,并且可能导致程序响应变慢或失去实时性。
  2. 不精确的时间控制:延时函数的延时时间通常是通过估算或试错来确定的,而不是精确的时间控制。这意味着延时函数的实际延时时间可能会受到许多因素的影响,如处理器速度、其他任务的执行等。这样就无法保证在不同的环境下延时时间的准确性和一致性。
  3. 无法处理并发事件:延时函数只能提供固定的延时时间,无法根据实际情况处理并发事件。例如,在需要同时处理多个事件或任务的情况下,延时函数无法灵活地调整延时时间以适应不同的事件触发。

相比之下,定时器可以解决上述问题,并提供更灵活和精确的时间控制。定时器可以设置特定的时间间隔,并在达到指定时间间隔时触发相应的事件或任务。它可以在后台运行,不会阻塞程序的执行,并且可以处理并发事件。定时器还可以提供更高的精度和稳定性,以满足实时性要求。

因此,使用定时器而不是延时函数可以提供更好的时间控制和任务调度能力,提高程序的效率和可靠性。

再上一篇文章中,我们使用HAL_Delay()函数实现延时切换灯的状态,是非常糟糕的代码设计模式,在CubeMX生成的代码中,默认已经启动了系统定时器,定时中断1毫秒。我们只需要重写定时器中断回调函数即可。下面的代码重新实现了led灯的控制,由于使用了定时器计时模式,不会造成主循环CPU空转不能处理其它任务的问题了。

在main.c文件中增加一个变量led_delay和 HAL_IncTick函数如下,可以在keil项目中搜索这个函数,这样函数原来定义的地方有__weak前缀,代表函数可以重写,HAL_Delay()用到了uwTick,所以重新时保留原来的代码,增加led_delay++;

int led_delay=0;
void HAL_IncTick(void)
{uwTick += uwTickFreq;led_delay++;
}

while循环中改成如下代码:

while(1)
{if(led_delay==500){HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);}else if(led_delay==1000){HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);led_delay=0;}
}

这里注意主循环内没有耗时的任务,所以每毫秒内会循环多次,所以在led_delay==500时会多次调用HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET);虽然目前看起来正常,但最好避免这种情况,修改后的代码如下

while(1)
{static char led_on_flag=0;if(led_delay>=500){if(led_on_flag==0){       HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_SET); led_on_flag=1;        }else{HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, GPIO_PIN_RESET);led_on_flag=0;}led_delay=0;}
}
http://www.yayakq.cn/news/876242/

相关文章:

  • 什么网站资源多网站建设与制作价格
  • 做计算机项目的网站公司公司网站建设
  • 企业为什么要做手机网站柳州网站建设 来宾市网站制作
  • 淄博网站seo价格国外免费搭建网站源码
  • 织梦后台怎么加自己做的网站网站开发存在的问题
  • 走廊文化建设图片网站做百度网站需不需要备案
  • 做第一个网站什么类型wordpress 指定首页
  • 扬中网站建设方案有赞微商城登录
  • 家具网站设计网wordpress好用中文插件
  • 建设公司门户网站重庆市建设工程信息网官网平台
  • 电器网站模板网页赚钱游戏
  • 网站开发企业需要什么资质计算机应用技术是学什么的
  • wordpress 多说样式百度seo霸屏软件
  • 网站ie8兼容性电子商务网站硬件建设的核心
  • dede模板蓝色大气简洁企业网站模板下载原阳县建站塔山双喜
  • 网站广告psdwordpress代码风格主题
  • 深圳罗湖的网站建设住房和城乡建设部招聘
  • 高端网站模板大型网站服务器价格
  • 子洲网站建设平台网络公司排名及利润
  • 衡水公司建网站费用jsp和php做网站那个快
  • 加强门户网站建设方案wordpress 支付查看
  • 微信服务号菜单链接网站怎么做的做电影网站哪个系统好
  • 网上做医生哪个网站好wordpress rclean
  • 网站建设 推广企业税率新闻大全
  • 响应式网站开发设计如何将网站挂载域名
  • 做的网站怎么发布到网上源码网站建设
  • 优惠券网站要怎么做网站制作主题思路
  • 建一个自己的网站需要多少钱html标签属性
  • 怎么做外贸个人网站邢台哪儿专业做网站
  • 岳阳网站建设一站式服务WordPress用rds云数据库