OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9678|回复: 5

好头痛啊,大虾们可否指点一下,为什么每次只是下降沿触发一次,进入中断函数,可是flag却增加好几个,外部中断计数混乱,求指教

[复制链接]

5

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-1
在线时间
16 小时
发表于 2013-8-19 19:43:47 | 显示全部楼层 |阅读模式
#include "exti.h"
#include "delay.h"
#include "usart.h"
#include"DIAN_JI.h"
#include"tft.h"
//////////////////////////////////////////////////////////////////////////////////  
 extern u8 flag;
void EXTI2_IRQHandler(void)
{
   
flag++; 

    LCD_ShowNum(100,150,flag,2); 
    EXTI->R =1<<2; // //清除中断标志 (挂起寄存器) 
 
}

//外部中断15~10服务程序
//void EXTI15_10_IRQHandler(void)
//{
// delay_ms(10);    //消抖  
// if(KEY0==0)      //按键0
// {
// LED0=!LED0;
// }else if(KEY1==0)//按键1
// {
// LED1=!LED1;
// }
// EXTI->R=1<<13;     //清除LINE13上的中断标志位  
// EXTI->R=1<<15;     //清除LINE15上的中断标志位  
//}
//外部中断初始化程序
//初始化PA0,PA13,PA15为中断输入.
void EXTIX_Init(void)
{
RCC->APB2ENR|=1<<5;     //使能PORTA时钟
GPIOD->CRL&=0XFFFFF0FF;//PA0设置成输入  
GPIOD->CRL|=0X00000800;   
GPIOD->ODR|=1<<2;   //PA13上拉,PA0默认下拉

// Ex_NVIC_Config(GPIO_A,0,RTIR); //上升沿触发
Ex_NVIC_Config(GPIO_D,2,FTIR );//下降沿触发 // Ex_NVIC_Config(GPIO_D,2,0x03);//下降沿触发

// Ex_NVIC_Config(GPIO_D,2,RTIR);//下降沿触发

MY_NVIC_Init(2,2,EXTI2_IRQChannel,2);    //抢占2,子优先级2,组2
// MY_NVIC_Init(2,1,EXTI15_10_IRQChannel,2);//抢占2,子优先级1,组2   
}




生活就是要流泪。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-8-19 22:05:52 | 显示全部楼层
我一般加个定时器中断 time,1ms进一次中断,中断里面自加,大概10MS配合一次我的码盘计数相对来说还是不错的。
回复 支持 反对

使用道具 举报

5

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-1
在线时间
16 小时
 楼主| 发表于 2013-8-19 22:27:53 | 显示全部楼层
回复【2楼】菜鸟也玩STM32:
---------------------------------
我最近在搞编码盘测速,想用外部中断加定时器的方法进行计数,可是这中断计数不准,我这头都大了,大神你是如何配合你的编码盘的?
生活就是要流泪。
回复 支持 反对

使用道具 举报

2

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-8-19 22:59:02 | 显示全部楼层
我是菜鸟....上面跟你讲了啊,就是你码盘值加1的话加一个条件,&&上10ms  也就是这2个条件同时成立就差不多了..误差小了不少,那个出发我改为上升沿下降沿皆可触发..
回复 支持 反对

使用道具 举报

28

主题

1489

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1656
金钱
1656
注册时间
2013-7-24
在线时间
1 小时
发表于 2013-8-19 23:16:15 | 显示全部楼层
不知道你触发源是什么,但显然是触发了多次了。
于20150522停用该账号:http://www.microstar.club
回复 支持 反对

使用道具 举报

5

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2013-8-1
在线时间
16 小时
 楼主| 发表于 2013-8-20 07:42:21 | 显示全部楼层
回复【5楼】styleno1:
---------------------------------
嗯,谢谢您的回复,我用的触发源是编码盘输出的电平,我测了一下电平高电平约4.56伏,很多人都说只要引脚有VT标志,是可以接受5v的,是不是这用5v供电的编码盘,输出的脉冲有问题?我的编码盘的GND与单片机的低是相连的,我想问一下,是不是这编码盘产生的脉冲不符合下降沿触发的要求啊?下降沿触发时,脉冲要满足什么要求?大神不知您有没有遇到过。。
生活就是要流泪。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 00:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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