stm8的外部中断经常进入两次,有源代码

[复制链接]
13170|24
 楼主| xt3203 发表于 2012-1-18 18:14 | 显示全部楼层 |阅读模式
本帖最后由 xt3203 于 2012-1-19 10:54 编辑

#include"stm8s105s4.h"
#define uint unsigned int
#define uchar unsigned char
_Bool LED1 @PA_ODR: 6;
_Bool LED2 @PA_ODR: 5;
_Bool LED3 @PA_ODR: 4;
_Bool K1 @PD_IDR: 4;
void EXTI_INIT(void)
{
EXTI_CR1 = 0x80;
}
void IO_INIT(void)
{
PA_DDR=0X70;
PA_CR1=0x70;
PD_CR1=0x10;
PD_CR2=0x10;
}
main()
{
_asm("sim");
EXTI_INIT();
IO_INIT();
_asm("rim");
LED1 = 1;
LED2 = 0;
LED3 = 1;

while (1);
}
@far @interrupt void KEY(void)
{
if(!K1) PA_ODR ^=0x70;
while(!K1);
}

在中断里把那几个LED取反一下而已,却发现中断经常进入两次,请问各位大哥怎么回事呀?
 楼主| xt3203 发表于 2012-1-19 10:37 | 显示全部楼层
自己顶,不能沉呀!麻烦各位了!
香水城 发表于 2012-1-19 17:04 | 显示全部楼层
你的程序没有一行注释,让别人怎么看?

你可以在中断中自己看看中断状态寄存器,看是什么引起的中断。
 楼主| xt3203 发表于 2012-1-21 21:39 | 显示全部楼层
3# 香水城

STM8好像没有状态寄存器的呀?
 楼主| xt3203 发表于 2012-1-24 20:18 | 显示全部楼层
不能沉呀!
 楼主| xt3203 发表于 2012-1-25 15:41 | 显示全部楼层
坐等高人!
ccmc 发表于 2012-1-26 00:19 | 显示全部楼层
进中断了没关中断哇
香水城 发表于 2012-1-26 22:22 | 显示全部楼层
硬件上是如何触发中断的?是否有可能是硬件上触发了2次中断?比如使用按键但没有考虑去抖。
 楼主| xt3203 发表于 2012-1-30 23:49 | 显示全部楼层
7楼和8楼的方法都试过了,效果不大; 目前先不考虑硬件方面的问题, 请大家过目一下,软件方面有没有错误,麻烦大家了.
qianguiyi 发表于 2012-1-31 09:50 | 显示全部楼层
@far @interrupt void KEY(void)
{
...
EXTI_INIT()//加上这一句看看
}
 楼主| xt3203 发表于 2012-1-31 15:58 | 显示全部楼层
10# qianguiyi
EXTI_INIT()里面只是把中断设置为下降沿进入中断,重复设置主要是考虑哪方面原因呀?大家平时使用时没有发现类同的问题吗? 你们是怎么处理的呀?
 楼主| xt3203 发表于 2012-1-31 16:03 | 显示全部楼层
这只是一个很简单的程序而已,怎么会出现这么大的问题,搞不明白,有人能提供测试通过的代码代参巧吗?
香水城 发表于 2012-1-31 16:12 | 显示全部楼层
这只是一个很简单的程序而已,怎么会出现这么大的问题,搞不明白,有人能提供测试通过的代码代参巧吗?
xt3203 发表于 2012-1-31 16:03


一个巴掌拍不响,为什么你不从硬件上找找原因的?
 楼主| xt3203 发表于 2012-1-31 17:03 | 显示全部楼层
13# 香水城

我用示波器详细查看过了,没有发现触发信号有什么问题!
香水城 发表于 2012-2-1 09:55 | 显示全部楼层
贴出电路图看看,把示波器的波形也贴出来看看。
qianguiyi 发表于 2012-2-1 14:04 | 显示全部楼层
搞错了,是要清除中断,使用EXTI_SR1 |= 1<<X
 楼主| xt3203 发表于 2012-2-1 20:34 | 显示全部楼层
16# qianguiyi

EXTI_SR1 |= 1<<X
没有找到EXTI_SR1这个寄存器哦,另外后面的X是什么呀?
寄存器.jpg

【RM0016】STM8S技术参考手册V4.pdf

4.68 MB, 下载次数: 420

 楼主| xt3203 发表于 2012-2-5 15:08 | 显示全部楼层
你们两个人说得都对,谢谢大家了!感激不尽!
qianguiyi 发表于 2012-2-7 11:54 | 显示全部楼层
是什么问题?
 楼主| xt3203 发表于 2012-2-13 22:54 | 显示全部楼层
19# qianguiyi

进中断后,关中断,消抖,查询,OK
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

167

帖子

1

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