仿真过程中I/O管脚有上升电平造成的?

[复制链接]
1584|20
 楼主| wuhany 发表于 2014-11-21 11:28 | 显示全部楼层 |阅读模式
P1.7使用上升沿触发中断。在仿真运行时,在外部还没有加上中断信号时,会进入一次中断。每次都是这样,是不是由于仿真过程中I/O管脚有上升电平造成的?
jlyuan 发表于 2014-11-21 11:28 | 显示全部楼层
接上拉电阻和下拉电阻呢
 楼主| wuhany 发表于 2014-11-21 11:35 | 显示全部楼层
比如对双极性电压信号转换到单极性输入的ADC,需要对输入电压加一个适当的偏置电压,抬高到正电压范围
liliang9554 发表于 2014-11-21 11:36 | 显示全部楼层
先清标志位?
heweibig 发表于 2014-11-21 11:38 | 显示全部楼层
直接接地或者接高电平,看看还能进中断不?
 楼主| wuhany 发表于 2014-11-21 11:39 | 显示全部楼层
通过1K电阻上拉,还能进去呀,怪了
jiahy 发表于 2014-11-21 11:41 | 显示全部楼层
是不是程序出问题了
 楼主| wuhany 发表于 2014-11-21 11:41 | 显示全部楼层
由于有一句P1IFG |= 0x00引起的,修改为P1IFG = 0x00就可以了。
 楼主| wuhany 发表于 2014-11-21 11:46 | 显示全部楼层
P1IFG |= 0x00与P1IFG = 0x00的区别是什么?
lizye 发表于 2014-11-21 11:46 | 显示全部楼层
P1IFG |= 0x0; 这一句什么用也没有啊,寄存器内容保持不变啊。
shimx 发表于 2014-11-21 11:48 | 显示全部楼层
是啊,P1IFG =  0x0; 将寄存器清零。
jiaxw 发表于 2014-11-21 11:49 | 显示全部楼层
是有区别的
|=是读改写
=直接赋值,是不会有读操作的
spark周 发表于 2014-11-21 11:57 | 显示全部楼层
这些操作如果针对RAM是没有实际区别的
liliang9554 发表于 2014-11-21 11:59 | 显示全部楼层
对,但针对SFR可能就不一样了,具体的取决于SFR说明
午夜粪车 发表于 2014-11-21 12:04 | 显示全部楼层
楼主可以运行时候通过修改DIR标志位,从引脚输出功能切换到输入的时候也会有IFG标志位置起,
所以写代码要注意清标志,在初始化的时候就清标志。
午夜粪车 发表于 2014-11-21 12:04 | 显示全部楼层

另外如果全速仿真还是有异常的中断,可以单步执行,实时查看寄存器中标志位的的变化情况。
不用的I/O引脚尽量设置为输出为低电平,防止浮动引脚的异常干扰
 楼主| wuhany 发表于 2014-11-21 12:07 | 显示全部楼层
哦。。。知道了
 楼主| wuhany 发表于 2014-11-21 12:07 | 显示全部楼层
那就先结贴了,周末愉快
vivilzb1985 发表于 2014-11-23 20:01 | 显示全部楼层
这个需要在输入信号上做下滤波处理的吧。。
comeon201208 发表于 2014-11-25 23:02 | 显示全部楼层
注意好电平信号的状态的,,该高就高,该低就低的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

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