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

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

[复制链接]
szgaos 发布时间:2014-4-18 15:36
    在嵌入式中用的最多,最普通的可以就是IO口和定时器了,在51时代要多个定时器真是难。到了ARM时代这个问题就不是问题了,下面就做32个16位定时器。, Y; p# D4 r+ g
 3 I+ G) P$ g8 e
   在stm32f1系列中TM1,TM8为两个高级定时器,TM2,TM3,TM4,TM5,TM6,TM7,6个普通定时器,它们都是16位的,每个有4路独立的比较器。这样我们就有8*4=32个比较器了,我们就是要用这32个比较器做出32个定时器
8 G& d1 h. W' W    我们先看一下定时器的输出比较功能:资料上说此项功能是用来控制一个输出波形,或者指示一段给定的的时间已经到时,这里我们就用输出一个固定时间的功能,我们先让计数器的最小计数时间为我们要的时间单元,比如1ms。然后设置比较器的比较值为我们要的定时值,如20,则为20MS,在产生的中断中,我们更改新为比较值,将比较值再加20,则为新的比较对象,下一个中断则在20秒后。5 |6 C1 ^  c" L
     以下我们取一个定时器,做4个16们定时器,我们要得到4个定时器,分别为10ms,20ms,50ms,200ms.
8 l* g  `5 ^7 ^7 g  Q: W* P系统时为72MHZ,通过设置分频值得到一个1KHZ的时钟源,
$ A# M2 J1 ~9 H" ~( |我们先将定时器的计数器TIMx_ARR设置为65535,计数器加1为1ms,加到最大值时清0重新计数% e) H  d0 b- a1 M" b  O
定义4个变量
$ p: ^3 X) S( A) o   U16  T10MS=10;% q- f% t, P' x- B9 a
   U16 T20MS=20;+ p3 C# p" v9 l% V- w" t* Q
  U16 T50MS=50;
# V. W7 t  F4 C3 W" \2 \; K6 G  U16 T200MS=2008 ~: ]) H( v) @) a3 N) C' ~* p0 \
TIMx_CCR1+=T10MS;
: i& I( H/ J7 ~& F! z TIMx_CCR2+=T20MS;( O; N! Z# q& g' J5 l0 t
TIMx_CCR3+=T50MS;
+ h1 ~0 j/ v9 f8 G* `TIMx_CCR4+=200MS;
/ E9 r' a$ o; D% n$ K2 S将比较器中断使能2 R5 M! ]: f& I0 R" S
在每个对应中断中加更新比较值的语句
- A: m1 z3 E5 Z- n9 j$ t: M. FISR TCMP1()
0 c" h/ |  u, I8 ^9 o{
( \, R+ Y5 O" z* z* }+ B' \5 gTIMx_CCR1+=T10MS;  //更新比较值
  [! _. h. q6 x: C  U  b1 T}
- s4 g8 J$ u! P; `) x3 Q 0 D/ b8 G, o5 o  b6 w9 F
ISR TCMP2()
7 I8 J/ M$ n" T, a1 x2 [{, @. R) S) C. V% _
TIMx_CCR2+=T20MS;  //更新比较值
% @0 V: [( |( S! m, r}
& l, f6 P& a* ^. g ) T" L3 E& [) y" J* A
ISR TCMP3()
1 b- z1 {7 z" y{
/ d6 q! w7 @! QTIMx_CCR3+=T50MS;  //更新比较值
! E0 A+ u' D$ h# S! f}3 y/ L6 N+ E$ H
 
; j) g$ x. }0 @$ w6 F4 AISR TCMP4()
" M; y9 T2 F# d) p1 Q9 l; q{
% E6 @- D. ?6 W) NTIMx_CCR4+=T200MS;  //更新比较值
+ O1 t/ X0 N: K4 o+ [- k4 @- L
! q2 L! p! F# K6 M$ z6 v. \' w
5 K5 I9 X9 x" O) Q, c3 _
* e8 T: D/ ^- x. j3 T
$ O/ F% v# N2 {+ k) {9 n( G这样每个中断就对就相应的定时时间了。
$ I- R! V" L: k! L怎样还可以吧,8*4=32个定时器。
0 G- W  O/ A7 O4 \% l9 U 
收藏 评论0 发布时间:2014-4-18 15:36

举报

0个回答

所属标签

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