OpenEdv-开源电子网

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

CARDREAD_用EXTI的問題

[复制链接]

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
发表于 2011-10-19 16:01:01 | 显示全部楼层 |阅读模式

以下PROG是修改自REMOTE的EXTI5是否能CHECK到有DATA1有多少下PULSE呢?
用示波器測出  PC5  本來有13下
但PROG只CHECK出5-7下,求幫幫忙,非常感謝



#include "cardread.h"
u32 t1, T;
u32 Remote_Odr;
void Remote_Init(void)
{       
 RCC->APB2ENR|=1<<4;
 GPIOC->CRL&=0XFFF0FFFF;
 GPIOC->CRL|=0X00080000; 
 GPIOC->ODR|=1<<4;    
 Ex_NVIC_Config(GPIO_C,4,FTIR);
 MY_NVIC_Init(0,0,EXTI4_IRQChannel,0);

 RCC->APB2ENR|=1<<5;     
 GPIOC->CRL&=0XFF0FFFFF;
 GPIOC->CRL|=0X00800000;
 GPIOC->ODR|=1<<5;
 Ex_NVIC_Config(GPIO_C,5,FTIR);
 MY_NVIC_Init(0,0,EXTI9_5_IRQChannel,0);
}  
void EXTI4_IRQHandler(void)
{
    u32 Break_out = 0,T = 0;
    u8 RODATA;
 Remote_Odr = 0;
    EXTI->IMR&=~(1<<5);
 T++;   t1=1;

 RODATA=0;
 Remote_Odr+=RODATA;
 Remote_Odr<<=1;
   while(1)
     { 
       Break_out++;
         if(Break_out == 1000000 || T == 26)
         break;
           if(DATA0 && DATA1)
       {
       t1++;
     if(!DATA0)
   {
   T++;
   RODATA=0;
   Remote_Odr+=RODATA;
   Remote_Odr<<=1;
   }
     if(!DATA1)
   {
   T++;
   RODATA=1;
   Remote_Odr+=RODATA;
   Remote_Odr<<=1;
   }
    }
  }
     EXTI->R=1<<4;
     EXTI->IMR|=1<<5;
}
void EXTI9_5_IRQHandler(void)
{
     u32 Break_out = 0;
     u8 RODATA;
     u32 T = 0;
     u32 Remote_Odr = 0;
     EXTI->IMR&=~(1<<4);
    T++; t1 = 1;
    RODATA=1;
    Remote_Odr+=RODATA;
    Remote_Odr<<=1;
    while(1)
     { 
           Break_out++;
          if(Break_out == 1000000 || T == 26)
          break;
         if(DATA1)
         {
            t1++;
            if(!DATA1)
              {
               T++;
               RODATA=1;
               Remote_Odr+=RODATA;
               Remote_Odr<<=1;
              }
           }
     }
    EXTI->R=1<<5;  
    EXTI->IMR|=1<<4;
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-19 16:39:02 | 显示全部楼层
回复【楼主位】mbass51:
---------------------------------
如果仅仅是测量脉冲,则不需要做其他判断了.
void EXTI9_5_IRQHandler(void)

 T++;
    EXTI->R|=1<<5;   
}
最后统计T的次数即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
 楼主| 发表于 2011-10-19 17:12:05 | 显示全部楼层
 如要用exti5,exti4要關中斷
是否這
void EXTI9_5_IRQHandler(void)

 T++;
   EXTI->IMR&=~(1<<4);
           if(DATA1)         //  如須要     
              {
               T++;
               RODATA=1;
               Remote_Odr+=RODATA;
               Remote_Odr<<=1;
              }
   EXTI->R|=1<<5;  
   EXTI->IMR|=1<<4;
}

回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-19 17:14:58 | 显示全部楼层
回复【3楼】mbass51:
---------------------------------
只要你没开启EXIT4就不用管它的.
还有最好在这种函数里面判断一下是否是EXIT5所产生的中断.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
 楼主| 发表于 2011-10-19 17:23:10 | 显示全部楼层
要同時用exti4,& exti5,如何在
函数里面判断一下是否是EXIT5所产生的中断呢?
關timer3,是怎樣的code?
thank you
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-19 17:33:42 | 显示全部楼层
回复【5楼】mbass51:
---------------------------------
有个中断标志.通过判断标志决定.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
 楼主| 发表于 2011-10-19 17:48:44 | 显示全部楼层
 中断标志是那一個RAM?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2011-10-20 00:09:43 | 显示全部楼层
回复【7楼】mbass51:
---------------------------------
EXTI->R寄存器。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

48

主题

376

帖子

0

精华

高级会员

Rank: 4

积分
621
金钱
621
注册时间
2011-3-18
在线时间
7 小时
 楼主| 发表于 2011-10-20 12:01:30 | 显示全部楼层
thank
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-24 07:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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