你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】+用一颗stm32f103做32个16位定时器

[复制链接]
szgaos 发布时间:2014-4-18 15:36
    在嵌入式中用的最多,最普通的可以就是IO口和定时器了,在51时代要多个定时器真是难。到了ARM时代这个问题就不是问题了,下面就做32个16位定时器。; F) w7 g, }) m9 p$ u! p* I8 L
 & b7 t* e! O2 b( a) {3 J
   在stm32f1系列中TM1,TM8为两个高级定时器,TM2,TM3,TM4,TM5,TM6,TM7,6个普通定时器,它们都是16位的,每个有4路独立的比较器。这样我们就有8*4=32个比较器了,我们就是要用这32个比较器做出32个定时器: }' T% N( o- M8 j; o7 E* H
    我们先看一下定时器的输出比较功能:资料上说此项功能是用来控制一个输出波形,或者指示一段给定的的时间已经到时,这里我们就用输出一个固定时间的功能,我们先让计数器的最小计数时间为我们要的时间单元,比如1ms。然后设置比较器的比较值为我们要的定时值,如20,则为20MS,在产生的中断中,我们更改新为比较值,将比较值再加20,则为新的比较对象,下一个中断则在20秒后。. A0 w# q" o! d- R
     以下我们取一个定时器,做4个16们定时器,我们要得到4个定时器,分别为10ms,20ms,50ms,200ms.
+ V9 e% }0 Z! ?/ @. B1 ~系统时为72MHZ,通过设置分频值得到一个1KHZ的时钟源,
9 U5 Q2 B7 n1 \5 b3 l5 H0 S( n; }我们先将定时器的计数器TIMx_ARR设置为65535,计数器加1为1ms,加到最大值时清0重新计数" _9 F/ x# G1 C8 {+ H) y2 x) X
定义4个变量
2 y2 r& ]3 q* u# a; u) G   U16  T10MS=10;
8 ^5 {" p+ a7 j- C8 L# F, W+ c   U16 T20MS=20;6 Z, q/ D% e1 Z* g3 s1 ^/ P
  U16 T50MS=50;
2 ?0 v6 h! _; }) n/ i& ~  U16 T200MS=200
# f5 w: F, V9 c+ p  P* b' Y2 L" FTIMx_CCR1+=T10MS;5 a! ?# N8 @* {& E1 F
 TIMx_CCR2+=T20MS;
9 D+ I) `% I" i) n% NTIMx_CCR3+=T50MS;
. _  Q% D' p& R& qTIMx_CCR4+=200MS;
# `. L. E* U7 V2 O将比较器中断使能
' m8 P) L) J# ?4 k- z. `! ?0 N在每个对应中断中加更新比较值的语句
* x9 [0 R/ ^+ Z+ Q, M+ Z# e9 kISR TCMP1()
1 r1 a& L. f5 ]8 j% i, o( L{! w8 Z, B6 v; [8 i
TIMx_CCR1+=T10MS;  //更新比较值
2 N5 G# Z5 e5 Q/ I* F}5 \4 w7 o" a+ p% d* X
 
) C# I0 T% D& y, N! ~ISR TCMP2()
# E$ u  [8 C# z" c) q8 E{' O8 c1 h2 \5 E1 T9 S8 h  Q8 k( t# q/ }# Z
TIMx_CCR2+=T20MS;  //更新比较值# Z. I  a* `: G* d
}
2 L* ]9 G$ B8 j. U+ y, M6 m0 c 
# s% v4 A3 S: JISR TCMP3()
. x& a! b9 h7 H* I7 {( i{
, m/ |' B  x! HTIMx_CCR3+=T50MS;  //更新比较值
0 y% Y9 q' I6 z9 Y4 x3 g}; X" A& }5 Z1 U& f
 
  r/ N* _& q6 a. J- ZISR TCMP4(): v  Z8 T% m  b3 g
{) l& M, [! V" {* Q
TIMx_CCR4+=T200MS;  //更新比较值' m2 \+ {6 R. ^, U) q5 u2 |" K
9 j7 B  ?$ e! D5 m& U

! }2 d) L$ }! A8 {" C2 Q
3 C+ B$ O6 u6 x! Z- W7 d) W8 ]4 y- g; Z! P8 K7 t7 w  \  F
这样每个中断就对就相应的定时时间了。
& s+ W4 U" H) |5 C% r1 g# p怎样还可以吧,8*4=32个定时器。4 D$ X0 O4 E0 k' t' L( |5 V' O
 
收藏 评论0 发布时间:2014-4-18 15:36

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版