打印
[STM8]

STM8S103外部中断问题

[复制链接]
2129|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
983779843|  楼主 | 2014-12-29 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void SensorIn_conf(void)
{
   PB_DDR_DDR4  = 0;          /* 设置数据方向寄存器 1为输出,0为输入--查看STM8寄存器.pdf P87 */         
   PB_CR1_C14 = 0;            /* 设置0 悬浮输入  1 上拉输入--查看STM8寄存器.pdf P88 */        
   //PB_CR2_C24 = 1;            /* 设置PB4中断输入 STM8寄存器.pdf P89 */  
   PB_CR2_C24 = 0;            /* 设置PB4悬浮输入 STM8寄存器.pdf P89 */  
   
   PB_DDR_DDR5  = 0;          /* 设置数据方向寄存器 1为输出,0为输入--查看STM8寄存器.pdf P87 */         
   PB_CR1_C15 = 0;            /* 设置0 悬浮输入  1 上拉输入--查看STM8寄存器.pdf P88 */           
   PB_CR2_C25 = 1;            /* PB4中断输入 STM8寄存器.pdf P89 */      
   //PB_CR2_C25 = 0;            /* PB4悬浮输入 STM8寄存器.pdf P89 */      
  
   EXTI_CR1 &= (uint8_t)(~MASK_EXTI_CR1_PBIS);     //#define MASK_EXTI_CR1_PBIS       0x0C
   //EXTI_CR1 |= (uint8_t)((uint8_t)(0x03) << 4);   /*设置为上升沿和下降沿触发触发中断*/
   EXTI_CR1 |= (uint8_t)((uint8_t)(0x01) << 4);   /*设置为上升沿和下降沿触发触发中断*/
   //EXTI_CR1 = 0x0c;
}
/*
00:下降沿和低电平触发
01:仅上升沿触发
10:仅下降沿触发
11:上升沿和下降沿触发
*/
#pragma vector=6
__interrupt void EXTI_PORTB_IRQHandler(void)
{
   //PD_ODR_ODR2 = ~PD_ODR_ODR2;  
  PD_ODR_ODR2 = 1;  
}

上面程序当用外部触发按键触发外部中断工作正常,但是当接一个霍尔传感器输出去触发时,只要接上霍尔传感器(在示波器上看没有任何电平变化),不管是否有触发都一直在中断。而且这时全局中断都还没有开启。请教大家是否也遇到同样的问题?

int main(void)
{
   disableInterrupts();        //关中断
    SensorIn_conf();
   driver_ini();            //在这设置断点,只要打开了外部中断就跑不到这里
   sys_ini();
   enableInterrupts();      //开中断

沙发
小浣熊| | 2014-12-29 17:45 | 只看该作者
楼主是专门做传感器这一块的吗??

使用特权

评论回复
板凳
白丁野老| | 2014-12-30 21:07 | 只看该作者
学习学习

使用特权

评论回复
地板
983779843|  楼主 | 2014-12-31 17:22 | 只看该作者
小浣熊 发表于 2014-12-29 17:45
楼主是专门做传感器这一块的吗??

不是,是做电动产品的,驱动马达,有传感器检测。

使用特权

评论回复
5
983779843|  楼主 | 2014-12-31 17:23 | 只看该作者
没有人遇到这样的问题吗?

使用特权

评论回复
6
周董| | 2015-1-2 12:55 | 只看该作者
不是做这一块的,

使用特权

评论回复
7
小浣熊| | 2015-1-3 19:37 | 只看该作者
983779843 发表于 2014-12-31 17:22
不是,是做电动产品的,驱动马达,有传感器检测。

哦哦 这样啊。。哈哈

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝