OpenEdv-开源电子网

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

怎样利用stm32103系列的单片机产生一个万分之一秒的中断啊?急!!

[复制链接]

5

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-3-2
在线时间
4 小时
发表于 2016-4-5 20:35:24 | 显示全部楼层 |阅读模式
3金钱

最佳答案

查看完整内容[请看2#楼]

100us 随便找个定时器设置一下就好了 void timer6_init(7200,0); 万分之一秒的中断 void timer6_init(u16 arr,u16 psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE); TIM_TimeBaseStructure.TIM_Period = arr; TIM_TimeBaseStructure.TIM_Prescaler = psc; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CK ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

55

主题

243

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1608
金钱
1608
注册时间
2012-12-30
在线时间
241 小时
发表于 2016-4-5 20:35:25 | 显示全部楼层
100us  随便找个定时器设置一下就好了  void timer6_init(7200,0); 万分之一秒的中断
void timer6_init(u16 arr,u16 psc)
{
        TIM_TimeBaseInitTypeDef        TIM_TimeBaseStructure;
        NVIC_InitTypeDef NVIC_InitStructure;

        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
        TIM_TimeBaseStructure.TIM_Period = arr;
        TIM_TimeBaseStructure.TIM_Prescaler = psc;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM6,&TIM_TimeBaseStructure);
        TIM_ITConfig(TIM6,TIM_IT_Update | TIM_IT_Trigger,ENABLE);

        NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;  //ÏèÕ¼óÅÏè¼¶2¼¶
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;  //′óóÅÏè¼¶3¼¶
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//IRQê1Äü
        NVIC_Init(&NVIC_InitStructure);        //Ö¸¶¨2Îêy3õê¼»ˉ
        TIM_Cmd(TIM6,ENABLE);
}
回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-5 23:41:04 | 显示全部楼层
0.6US ? 有点难度啊,想了一下,好像真的想不出好的方法
回复

使用道具 举报

0

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
233
金钱
233
注册时间
2014-6-5
在线时间
37 小时
发表于 2016-4-6 08:32:49 | 显示全部楼层
100uS的中断随便用一个定时器就可以做啊。一次性的还好,如果是频繁中断那么就没多少时间处理其他任务了,资源占用大。
回复

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2016-4-6 09:34:45 | 显示全部楼层
likunxue 发表于 2016-4-5 23:41
0.6US ? 有点难度啊,想了一下,好像真的想不出好的方法

讲解一下计算过程吧
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复

使用道具 举报

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
发表于 2016-4-6 09:36:50 | 显示全部楼层
likunxue 发表于 2016-4-5 23:41
0.6US ? 有点难度啊,想了一下,好像真的想不出好的方法

为啥是0.6US?
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2016-4-6 09:40:55 | 显示全部楼层
0.6是什么鬼
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11553
金钱
11553
注册时间
2014-4-1
在线时间
1317 小时
发表于 2016-4-6 10:22:11 | 显示全部楼层

中断没有时间长度的概念,
问题究竟是什么?
LZ自己想清楚吧。


回复

使用道具 举报

9

主题

507

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3347
金钱
3347
注册时间
2013-4-10
在线时间
333 小时
发表于 2016-4-6 13:19:40 | 显示全部楼层

算错了! 不好意思
回复

使用道具 举报

66

主题

364

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-18
在线时间
129 小时
发表于 2016-4-6 14:10:23 | 显示全部楼层
ding   
回复

使用道具 举报

48

主题

537

帖子

2

精华

金牌会员

Rank: 6Rank: 6

积分
1369
金钱
1369
注册时间
2014-2-13
在线时间
169 小时
发表于 2016-4-6 14:22:41 | 显示全部楼层
F1系列的最高频率72MH,1/72000 = 0.0000139s = 13.9us,这是一个指令周期需要的时间。100us所以没问题啦
回复

使用道具 举报

5

主题

8

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2016-3-2
在线时间
4 小时
 楼主| 发表于 2016-4-9 11:29:54 | 显示全部楼层
怎样将其输出呢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-19 07:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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