迪文科技论坛

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

【提问】定时器

[复制链接]

11

主题

11

回帖

200

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

583

回帖

3291

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

11

主题

11

回帖

200

积分

中级会员

Rank: 3Rank: 3

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

583

回帖

3291

积分

论坛元老

Rank: 8Rank: 8

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

11

主题

11

回帖

200

积分

中级会员

Rank: 3Rank: 3

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

使用道具 举报

0

主题

583

回帖

3291

积分

论坛元老

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-21 06:28 , Processed in 0.051062 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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