迪文科技论坛

 找回密码
 立即注册
搜索
查看: 636|回复: 12

【提问】如何提高IO引脚读取电平的效率?

[复制链接]

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
发表于 2022-7-16 15:48:13 | 显示全部楼层 |阅读模式
如何提高IO引脚读取电平的效率?我有二十多个引脚需要监测
程序怎样写才能提高读取的效率?
回复

使用道具 举报

0

主题

1276

回帖

5390

积分

论坛元老

Rank: 8Rank: 8

积分
5390
发表于 2022-7-16 16:11:44 | 显示全部楼层
本帖最后由 integer_32 于 2022-7-16 16:15 编辑

IO 状态只能一个个去读取
回复

使用道具 举报

0

主题

39

回帖

153

积分

注册会员

Rank: 2

积分
153
发表于 2022-7-16 22:46:34 | 显示全部楼层
用T2定时器做1个自动重装载(Auto Load Mode)定时器中断,定时器中断中去读取并口状态,并和上一个状态做XOR异或操作,然后把当前状态更新到上一个状态,结果不等于0就是有跳变了。3个并口24个IO,汇编写的话0.5uS检测一次肯定没问题。速度更高的话,可以定制400MHz内核,这样单纯只干这个事情的话,0.1uS检测一次都能做到。
回复

使用道具 举报

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
 楼主| 发表于 2022-7-18 09:16:22 | 显示全部楼层
dwinrd3 发表于 2022-7-16 22:46
用T2定时器做1个自动重装载(Auto Load Mode)定时器中断,定时器中断中去读取并口状态,并和上一个状态做X ...

如何读取并口状态?有参考例程吗?
回复

使用道具 举报

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
 楼主| 发表于 2022-7-18 09:23:32 | 显示全部楼层
dwinrd3 发表于 2022-7-16 22:46
用T2定时器做1个自动重装载(Auto Load Mode)定时器中断,定时器中断中去读取并口状态,并和上一个状态做X ...

用keil写能到多少?
回复

使用道具 举报

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
 楼主| 发表于 2022-7-18 10:22:06 | 显示全部楼层
dwinrd3 发表于 2022-7-16 22:46
用T2定时器做1个自动重装载(Auto Load Mode)定时器中断,定时器中断中去读取并口状态,并和上一个状态做X ...

请问在吗?
回复

使用道具 举报

1

主题

31

回帖

758

积分

高级会员

Rank: 4

积分
758
发表于 2022-7-18 10:53:13 | 显示全部楼层
huojidu 发表于 2022-7-18 09:16
如何读取并口状态?有参考例程吗?

也就是读取IO口的状态
回复

使用道具 举报

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
 楼主| 发表于 2022-7-18 10:56:31 | 显示全部楼层
liulaogen2 发表于 2022-7-18 10:53
也就是读取IO口的状态

利用定时器中断去读取23个IO口?
回复

使用道具 举报

1

主题

31

回帖

758

积分

高级会员

Rank: 4

积分
758
发表于 2022-7-18 11:41:44 | 显示全部楼层
就是用中断去读P0 、P1 、P2 的状态值对应24个24个IO ,为IO口的并口状态,再做相应操作;
回复

使用道具 举报

194

主题

442

回帖

2741

积分

金牌会员

Rank: 6Rank: 6

积分
2741
 楼主| 发表于 2022-7-18 12:14:06 | 显示全部楼层
liulaogen2 发表于 2022-7-18 11:41
就是用中断去读P0 、P1 、P2 的状态值对应24个24个IO ,为IO口的并口状态,再做相应操作; ...

请问有参考例程吗?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-5 22:33 , Processed in 0.044440 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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