找回密码
立即注册
搜索
发新帖

150

积分

0

好友

9

主题
发表于 2019-4-17 13:21:22 | 查看: 15352| 回复: 13
请教,GPIO4_C6作为输出GPIO一直写高,cpu占用从百分之十几飙升到60%,关掉写高程序,cpu占用立即降低至10%以下,是什么原因?

发表于 2019-4-18 17:45:36
请问你是怎么把这个GPIO写高的

回复 显示全部楼层 道具 举报

发表于 2019-4-18 18:23:39
本帖最后由 rpdzkj_hjy 于 2019-4-18 18:25 编辑


我试过拉高拉低,没有出现cpu飙升到60%

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复 显示全部楼层 道具 举报

发表于 2019-4-18 19:24:46
我使while循环方式,对GPIO4_C6持续置高:
while(1)
{
   gpio_write(fd, echo_write_high_buffer[7]);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复 显示全部楼层 道具 举报

发表于 2019-4-19 10:56:28
我使while循环方式,对GPIO4_C6间隔4ms置高一次:
while(1)
{
   gpio_write(fd, echo_write_high_buffer[7]);
  Sleep(4);
}
即要求每4ms置高一次,cpu占用会飙升

回复 显示全部楼层 道具 举报

发表于 2019-4-19 11:11:19
xiangyi 发表于 2019-4-19 10:56
我使while循环方式,对GPIO4_C6间隔4ms置高一次:
while(1)
{

你一直写会一直调用驱动函数,CPU会占用很多

回复 显示全部楼层 道具 举报

发表于 2019-4-19 15:45:29
我们现在必须4ms调用一次,怎么能把CPU占用降下来?

回复 显示全部楼层 道具 举报

发表于 2019-4-19 16:50:17
大循环写高,我虽然不是搞软件开发,但是这种方式我也知道肯定是最不合适的。即使是在单片机里面也没人这样干。你每4ms拉高一次,拉高持续时间就是一个瞬间脉冲(无时间要求?)?置低时间也是4ms,那你CPU就没干什么,一个劲在拉高拉低了,都跳不出循环。

回复 显示全部楼层 道具 举报

发表于 2019-4-19 17:23:00
xiangyi 发表于 2019-4-19 15:45
我们现在必须4ms调用一次,怎么能把CPU占用降下来?

你们需要实现什么功能,用while循环一直写高这种方法没办法使cpu降下来

回复 显示全部楼层 道具 举报

发表于 2019-4-20 11:27:18
嗯,你说得对。我们在实际使用时采用的方式如下:每隔4ms进一次中断,将GPIO置高一次。采用上述方式产生的结果是CPU占用急剧升高。这种现象对你们的板子来说是正常否?

回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

小黑屋|Archiver|手机版|深圳荣品电子  

GMT+8, 2024-5-5 18:29 , Processed in 0.170272 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表