打印
[MCU]

怎样给一个标志位赋值的问题……求助!!!

[复制链接]
2053|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
单片机学习123|  楼主 | 2013-10-25 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
sunhq02| | 2013-10-25 15:19 | 只看该作者
成功接收后置一, 这个应该没什么好说的
置零的话有两种做法:
1. 成功接收置一, 经过若干时间之后置零
2. 成功接收置一, 被某个处理标志的程序读取标志之后, 由这个处理程序置零

使用特权

评论回复
板凳
单片机学习123|  楼主 | 2013-10-25 15:30 | 只看该作者
本帖最后由 单片机学习123 于 2013-10-25 15:38 编辑
sunhq02 发表于 2013-10-25 15:19
成功接收后置一, 这个应该没什么好说的
置零的话有两种做法:
1. 成功接收置一, 经过若干时间之后置零


还有别的方法没?我的意思是,能不能 使 flag只随着红外接收头就收红外与否而变化!?

使用特权

评论回复
地板
sunhq02| | 2013-10-25 15:49 | 只看该作者
这个一般这样处理
一旦接收到信号, 就置一
一旦经过t还没有接收到信号, 就置零
t根据你的红外通讯协议包长短而定

使用特权

评论回复
5
ayb_ice| | 2013-10-25 16:09 | 只看该作者
成功后,处理,处理后清零

使用特权

评论回复
6
单片机学习123|  楼主 | 2013-10-25 16:09 | 只看该作者
sunhq02 发表于 2013-10-25 15:49
这个一般这样处理
一旦接收到信号, 就置一
一旦经过t还没有接收到信号, 就置零

这个方法可行,只不过对时间的掌控一定要做到很精确

使用特权

评论回复
7
单片机学习123|  楼主 | 2013-10-25 16:15 | 只看该作者
ayb_ice 发表于 2013-10-25 16:09
成功后,处理,处理后清零

我的意思是,能不能 使 flag只随着红外接收头就收红外与否而变化!?

使用特权

评论回复
8
mfktuu| | 2013-10-25 16:18 | 只看该作者
请参考二楼

使用特权

评论回复
9
sunhq02| | 2013-10-26 08:28 | 只看该作者
单片机学习123 发表于 2013-10-25 16:09
这个方法可行,只不过对时间的掌控一定要做到很精确

恩,不过在多数时候不用特别精确
信号的协议决定了t的最小值
而两个信号的间隔决定了t的最大值
多数时候信号的间隔可能会很大
所以对t的取值多数时候不成问题
当然,具体情况下可能还有其他因素要考虑

使用特权

评论回复
10
很忙| | 2013-10-26 08:40 | 只看该作者
这个与你这个红外接收的写法有关系。你如果用的是中断的方式,那么我问你,接收完后,你在中断函数里FLAG置1了,在没有红外遥控的时候,中断不被触发,中断函数不跑,你怎么去清变量。所以只能用定时来处理。
你的意思可能是要表达这样一个目的。有红外接受的时候置1,没有的时候置0.这个如果你用中断的话没有什么意义吧。所以要看你是怎么写这个红外接收的。

使用特权

评论回复
11
16777216| | 2013-10-26 10:50 | 只看该作者
简单的方法 外接同一路信号到中断   一路接到中断  一路接到定时器 (51使用定时器gata位)
硬件多加一根线


使用特权

评论回复
12
16777216| | 2013-10-26 10:50 | 只看该作者
16777216 发表于 2013-10-26 10:50
简单的方法 外接同一路信号到中断   一路接到中断  一路接到定时器 (51使用定时器gata位)
硬件多加一根线
...

不过我感觉完全没必要啊 红外速度又不快

使用特权

评论回复
13
单片机学习123|  楼主 | 2013-10-26 12:45 | 只看该作者
很忙 发表于 2013-10-26 08:40
这个与你这个红外接收的写法有关系。你如果用的是中断的方式,那么我问你,接收完后,你在中断函数里FLAG置 ...

嗯,我知道了,目前已经有了解决办法,和你的方法一样!非常感谢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

134

帖子

0

粉丝