迪文科技论坛

 找回密码
 立即注册
搜索
查看: 109|回复: 5

【提问】定时器

[复制链接]

10

主题

10

回帖

171

积分

注册会员

Rank: 2

积分
171
发表于 2024-11-26 10:16:07 | 显示全部楼层 |阅读模式
使用EKT043E定时器的时候,遇到了while循环定时器就不继续定时触发中断,这是什么原因啊,那我怎样才能计算某个GPIO上引脚的高电平时间呢,GPIO设置为输入。
回复

使用道具 举报

0

主题

126

回帖

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
发表于 2024-11-26 11:08:48 | 显示全部楼层
不需要使用小的while循环,就在总循环中读取io的状态就行,1开始计时,0-停止,就可以了,while循环时,定时器中断也能跑
回复

使用道具 举报

10

主题

10

回帖

171

积分

注册会员

Rank: 2

积分
171
 楼主| 发表于 2024-11-26 19:20:49 | 显示全部楼层
那你这种情况怎么在while总循环中使用定时器啊,不用while判断是高电平还是低电平,那用什么,用if吗,可是用if的话不就变成了总是在开启定时器吗。这是我的源代码,请你看一下为什么,使用ut.c measure()函数 24行while(Echo == 0);定时器就不工作了,而注释掉这行的时候,定时器又可以继续计数了。,计数值会显示在屏幕中心的位置。屏幕使用的EKT043E

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

126

回帖

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
发表于 2024-11-26 20:57:50 | 显示全部楼层
定时器就是一直开着的,就用if,io是1就是定时器中断里的数++,=0就停止++了嘛,具体逻辑可以细化。
IO状态由0变1,给状态值1,并且计数清零;IO由1变0,给状态值0,记录计数。
定时器中断里面就是判断状态值,状态值是1就++。
附件clock()函数就是调用了定时器中断里的计数

本帖子中包含更多资源

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

x
回复

使用道具 举报

10

主题

10

回帖

171

积分

注册会员

Rank: 2

积分
171
 楼主| 发表于 2024-11-27 19:56:49 | 显示全部楼层
麻烦您帮我看一下,为什么我用定时器的时候,遇到while就不定时了
回复

使用道具 举报

0

主题

126

回帖

1587

积分

金牌会员

Rank: 6Rank: 6

积分
1587
发表于 2024-11-27 21:15:20 | 显示全部楼层
是卡在while循环不出来了。
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-12-22 00:48 , Processed in 0.057858 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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