OpenEdv-开源电子网

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

stm8s003设置定时器之后无法进入外部中断

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2019-10-19
在线时间
5 小时
发表于 2019-11-23 16:39:11 | 显示全部楼层 |阅读模式
1金钱
stm8s003设置定时器之后无法进入外部中断

如果加入定时器设置就无法进入外部中断函数,不设定时器则可以进入外部中断


void KEY_S2_Config(void)
{
        disableInterrupts();
       
        /* Initialize I/Os in Output Mode */
        GPIO_Init(PR2CLR_INT_GPIO_PORT, (GPIO_Pin_TypeDef)PR2CLR_INT_PIN, GPIO_MODE_IN_PU_IT);
       
         /* Initialize the Interrupt sensitivity */
  EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOB, EXTI_SENSITIVITY_FALL_LOW);
  EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);
       
        ITC_SetSoftwarePriority(ITC_IRQ_PORTC,ITC_PRIORITYLEVEL_2);
        enableInterrupts();
}

外部中断设置函数


void TIM4_Config(void)
{
//        disableInterrupts();
  /* TIM4 configuration:
   - TIM4CLK is set to 16 MHz, the TIM4 Prescaler is equal to 128 so the TIM1 counter
   clock used is 16 MHz / 128 = 125 000 Hz
  - With 125 000 Hz we can generate time base:
      max time base is 2.048 ms if TIM4_PERIOD = 255 --> (255 + 1) / 125000 = 2.048 ms
      min time base is 0.016 ms if TIM4_PERIOD = 1   --> (  1 + 1) / 125000 = 0.016 ms
  - In this example we need to generate a time base equal to 1 ms
   so TIM4_PERIOD = (0.001 * 125000 - 1) = 124 */

  /* Time base configuration */
  TIM4_TimeBaseInit(TIM4_PRESCALER_128, TIM4_PERIOD);
  /* Clear TIM4 update flag */
  TIM4_ClearFlag(TIM4_FLAG_UPDATE);
  /* Enable update interrupt */
  TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE);

  /* enable interrupts */
  enableInterrupts();

  /* Enable TIM4 */
  TIM4_Cmd(ENABLE);
}
TIM4定时器中断设置

这怎么回事啊?

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

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2019-11-24 02:41:46 | 显示全部楼层
回复

使用道具 举报

6

主题

1130

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-11-24 18:49:16 | 显示全部楼层
帮顶                    
成功没有捷径
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2019-10-19
在线时间
5 小时
 楼主| 发表于 2019-11-27 15:37:03 | 显示全部楼层

请教一下,像stm8s这种窗口看门狗,如果用起来喂狗的时候都是在平时的while(1)里喂狗吗?我发现是因为我在定时器中断里喂狗导致的外部中断不能用
回复

使用道具 举报

558

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
164897
金钱
164897
注册时间
2010-12-1
在线时间
2100 小时
发表于 2019-11-28 02:00:14 | 显示全部楼层
Taichi 发表于 2019-11-27 15:37
请教一下,像stm8s这种窗口看门狗,如果用起来喂狗的时候都是在平时的while(1)里喂狗吗?我发现是因为我 ...

中断也是可以喂狗的,你时间不够?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2012-8-31
在线时间
20 小时
发表于 2019-12-4 16:50:35 | 显示全部楼层
用寄存器写很简单,我反而觉得库很麻烦
力拔山河兮盖世,时不利兮追不逝
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-6-8 13:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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