OpenEdv-开源电子网

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

压栈操作带来的TIM中断服务周期摄动范围有多大?

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-8-27
在线时间
14 小时
发表于 2017-10-3 16:03:05 | 显示全部楼层 |阅读模式
5金钱
在一个小项目里需要采用STM32F103进行精确的周期控制,因此采用TIM1的定时器中断功能。设定为自动重载,并且没有比它优先级高的中断来打扰。

/***********TIM1***************/
TIM_DeInit(TIM1);
TIM_TimeBaseStructure.TIM_Period=SPEED_REFRESH_CYCLE; //设置固定的中断周期
TIM_TimeBaseStructure.TIM_Prescaler=0;
TIM_TimeBaseStructure.TIM_ClockDivision=0;
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;       
TIM_TimeBaseStructure.TIM_RepetitionCounter=0;
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);

void TIM1_UP_IRQHandler(void)
{
      ………//无分支的固定时长操作

    GPIOA->BRR = GPIO_Pin_7;    //标志信号输出,打开

     ………//无分支的固定时长操作           

    TIM1->SR = (uint16_t)~TIM_IT_Update;

    GPIOA->BSRR = GPIO_Pin_7; //标志信号输出,关闭

     ………//无分支的固定时长操作   
}



然而,在使用中发现,在不同的情况下,PA.7的信号周期存在抖动。

QQ图片20171003155617.png
QQ图片20171003155728.png
分析原因,造成这钟差距的原因应该是进入中断服务程序前的单片机自动压栈操作带来的

那么问题来了,在STM32F103里,这种压栈带来的周期摄动范围究竟有多大呢?如何去分析和测试呢?有没有大佬能够指点迷津??




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

使用道具 举报

2

主题

1447

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2258
金钱
2258
注册时间
2010-12-16
在线时间
206 小时
发表于 2017-10-4 15:06:51 | 显示全部楼层
你的红框后面还有个 0.1% , 建议注意一下 .
回复

使用道具 举报

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-8-27
在线时间
14 小时
 楼主| 发表于 2017-10-4 22:25:40 | 显示全部楼层
shihantu 发表于 2017-10-4 15:06
你的红框后面还有个 0.1% , 建议注意一下 .

多谢提醒
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-20 01:06

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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