IRQ端口可以用来做红外线接受吗?

[复制链接]
2902|8
 楼主| zhoudajia 发表于 2007-1-9 20:30 | 显示全部楼层 |阅读模式
拜求各位高手帮忙,IRQ端口可以用来做红外线接受吗?用C语言怎么读呢?<br />
张明峰 发表于 2007-1-10 13:06 | 显示全部楼层

肯定可以

用C语言的话必须编一小段汇编程序来判读IRQ引脚状态。
 楼主| zhoudajia 发表于 2007-1-10 13:49 | 显示全部楼层

是只能用"BIH和BIL指令吗?

  
 楼主| zhoudajia 发表于 2007-1-10 13:57 | 显示全部楼层

张明峰?张老师,是您吗?

您就是&lt&ltPIC单片机入门与实战&gt&gt的作者张明峰老师吗?一年前我买过你的书,<br />我觉得你出的书是单片机书中水平最高的。<br />您如果您能再出一本HC08的书,那有多好啊!
张明峰 发表于 2007-1-10 15:05 | 显示全部楼层

是啊

IRQ引脚状态测试必须用专用的汇编指令,故C语言没有现成的语句与之对应。可以参考下面的代码<br /><br />byte&nbsp;GetIRQ(void)&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;asm&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bil&nbsp;_IRQ_0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lda&nbsp;#1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IRQ=1,&nbsp;return(1)<br />&nbsp;&nbsp;&nbsp;_IRQ_0:<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;return(0);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IRQ=0,&nbsp;return(0)<br />}<br /><br />void&nbsp;Test(void)<br />{<br />&nbsp;&nbsp;&nbsp;if&nbsp;(GetIRQ())&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IRQ=1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//IRQ=0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;}<br />}<br />
 楼主| zhoudajia 发表于 2007-1-10 15:14 | 显示全部楼层

太好了,谢谢张老师!

  
gtw 发表于 2007-1-11 12:39 | 显示全部楼层

啊呀,这儿又见到了LS的垃圾贴

<br />关于判断IRQ引脚电平问题<br /><br />codewarrior里面有专门的宏来解决,可以在C中直接使用<br />
gtw 发表于 2007-1-11 14:38 | 显示全部楼层

编译时出现警告可忽略

  
gtw 发表于 2007-1-11 18:31 | 显示全部楼层

__isflag_int()

在C中判断IRQ电平就可以用<br /><br />if&nbsp;(&nbsp;__isflag_int()&nbsp;){<br /><br /><br />}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部