找回密码
 注册
关于网站域名变更的通知
查看: 140|回复: 0
打印 上一主题 下一主题

【开发教程10】疯壳·ARM功能手机-定时器实验教程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-7-27 17:50 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
ARM功能手机
——疯壳·开发板系列
定时器实验教程   

# R4 E2 m; }2 w8 Q) L' ]0 a, Y& h5 p7 R' m( q- t# i" p6 X
0 ~6 A9 u( a8 Z* O

- F3 Y# \9 x3 C$ ` : M/ Z+ S% S8 G7 r
    图1
! M" h% U) F) o1 W. l5 S8 N( K3 U2 g% g& o

6 H: q8 ?# U  L, L    8LED硬件电路- V# O7 z& t; z; O- x
  C6 V  ]4 D& E, \- |1 J. o6 B$ D
        板子中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流电阻,如下图所示:
3 q- t, K& m" S' _: j1 c% M4 u- t( ]$ R
   
: c  f" Z& B8 s3 {    图29 i5 F6 X9 |4 Q/ N# X. q
9 V5 Z( i/ t% O' X$ `& }; w
    第二节 Timer寄存器
4 w. k$ C& L, b- }8 p
/ y/ b, h& N9 \/ v8 v6 x    2.1 Timer介绍% {4 Y5 [& G% D* c: }2 U
: h8 O+ ~- U. _( ^
    软件定时器模块包含两个定时器模块,它们可以通过软件控制、编程并用于各种任务。; L: s* \  r0 A& |# b4 D; F
    2.1.1 Timer04 q' o; p/ E9 E7 l1 E0 r/ U
: y# a# ^8 ]) ]  Z/ @0 F2 k
    定时器0有16位的通用定时器;可以产生两路脉宽调制信号;可编程的输出频率;可编程的占空比;可编程的软件中断。8 Z5 M) o. W% A! {
    2.1.2 Timer2
6 {, `3 l: g7 l3 a* n9 y2 D: d% A: ^4 [5 N% H
    定时器2有14位的通用定时器;可以产生3路脉宽调制信号;输入时钟频率为16MHz;可编程的输入频率;占空比可调;用于白色LED的亮度控制。
( p8 }- ?1 d% Q/ O& W( m) ]# b( ?# i$ ]* D3 C4 y5 ^  S2 A' L7 J
    2.2 寄存器介绍
* l( ]( G- S( ~% z2 d$ C    2.2.1 定时器0控制寄存器9 e, H. V4 K) j1 B9 d: c! b
  S9 U  K, l8 H4 i
   
) f2 O# p9 c8 ~- U2 n7 }! T# ^    图3% `0 y: I% D: @5 P4 X% C
    15:4位:保留不使用;2 L% y+ Q8 v+ B: ]" i$ p
    3位:PWM模式选择,’0’表示PWM信号为高时输出’1’,’1’表示PWM信号为高时输出快时钟信号的二分频,则输出频率范围为1~8MHz;+ J& f3 ]/ e" _: _( k; O! S1 m
    2位:定时器0的时钟分频,为’1’使用选择的时钟源频率,为’0’使用选择的时钟源进行10分频,注意这个值适用于计数寄存器;
7 {2 l( L- o( D5 W7 D    1位:时钟源选择,’1’使用快时钟(16、8、4、2MHz),’0’使用慢时钟(32KHz);+ V. l, z" {/ H- l" E
    0位:定时器0控制位,’0’表示定时器0关闭并处于复位状态,’1’定时器0运行。
% R$ O, J! E5 I
# @- r+ W4 q6 _    2.2.2 定时器0计数控制寄存器0 h# Q1 V+ k3 G& L) {  H

$ w% v: a6 ^& q1 r9 y % h- O/ Z4 X0 M! d) j5 F
    图4
/ {9 N1 @7 |4 S/ s# D    定时器0计数重新装载值,如果读取该寄存器则返回当前计数器的值。- Z9 b3 H: h& J5 a4 `" G
    2.2.3 定时器0高电平重新装载值
, M3 F) a! |* e7 n) I( Z  k% k( G3 d7 ?4 N$ m! A% V
   
8 i) R6 R0 G# I. P2 x2 }5 g- k! N    图5
% k( n0 B, C& D5 S3 C; [    定时器0高电平重新装载值,如果读取该寄存器则返回定时器0的计数值。+ J( ]2 |  }1 O  |1 m! N
    2.2.4 定时器0低电平重新装载值
* u$ i6 c3 n$ k  L2 D5 H
3 {; }" `( L( M* ]    ' s# A, \2 y. e! O7 W( M- [
    图6
7 \& |! R* J% i9 b/ E    定时器0低电平重新装载值,如果读取该寄存器则返回定时器0的计数值。$ t% R) L4 x( i7 b- m5 |* K
    2.2.5 PWM2占空比& D" I" D! J+ D+ k

6 }+ _, _7 f# |$ y+ t7 ?    . a7 ?* u3 q8 o
    图7
. E" o2 C) t3 J( T/ n% }. {& m    PWM2信号的占空比。0 w" c) P+ I2 f: u) j+ J
    2.2.6 PWM3占空比; m9 S7 E  }+ W8 K, g7 @3 A7 d
' t$ |) z2 T* Z7 x& f
   
4 q# ~. l4 I# n# {1 |    图8
) G  q% |9 R: G    PWM3信号的占空比。% z! k3 q7 y/ b' U  f$ y3 C! O
    2.2.7 PWM4占空比) P+ o+ u) ^# f5 x6 W, W
) _0 o2 \- y2 o" s
   0 h$ ]' P; h9 i* q- G
    图9: \) K; s7 [/ t6 o6 b4 |8 m4 J; r& |
    PWM4信号的占空比。
7 }, g4 n/ C) ~) b4 r; a    2.2.8 PWM2,3,4的频率% m) q- K$ M# N" S
3 t- g, k3 A) W* F
   
& o0 j7 T2 b5 G. a0 A    图10- }- b* B7 S& V& \6 D
    PWM2、3、4信号的频率,三个信号频率相同。- E  K' e5 F; {
* ]; ?7 t. y) t& L3 W
    2.2.9 PWM2,3,4控制寄存器
) u# o* ^' K. \! F& b( Y+ T0 R( _7 {  p6 p4 i" {
   7 {, J- c# l1 S0 u
    图11
+ ^+ L- J. v& i+ R# ?    2位:硬件暂停使能,为’1’则硬件可以停止PWM2、3、4。# z! v3 G8 N6 e& s( D5 z0 w- s9 }% ?
    1位:软件暂停使能,为’1’则PWM2、3、4暂停。3 h  o8 U# G( K' W7 U* r
    0位:PWM信号使能,为’1’则PWM2、3、4使能。
) M2 }5 ^' ]+ z  Q/ S% M9 g
# T, N% v/ }+ k& n, ]    2.3 寄存器配置讲解
& E/ F: O! _( j) V# p    #define CLK_PER_REG             (* ( volatile uint16*)0x50000004)9 h6 a- r! i# d3 C$ n5 x) P, g; z6 {
    #define TIMER0_CTRL_REG         (* ( volatile uint16*)0x50003400)8 G/ |! O# F% V- x9 J: w
    #define TIMER0_ON_REG           (* ( volatile uint16*)0x50003402)
3 Q: m8 g" T9 W    #define TIMER0_RELOAD_M_REG     (* ( volatile uint16*)0x50003404)
/ ]/ q$ K  l% ~8 g' o5 H    #define TIMER0_RELOAD_N_REG      (* ( volatile uint16*)0x50003406)! n. s( ]- e" K' c( c: N
    #define PWM2_DUTY_CYCLE          (* ( volatile uint16*)0x50003408)9 W* C1 ~" g. e4 G4 a$ {
    #define PWM3_DUTY_CYCLE          (* ( volatile uint16*)0x5000340A). q" S) u) U% {5 _
    #define PWM4_DUTY_CYCLE          (* ( volatile uint16*)0x5000340C)
# i: F% B/ P1 G% o  o    #define TRIPLE_PWM_FREQUENCY     (* ( volatile uint16*)0x5000340E)
! c5 S1 q6 b) P& [    #define TRIPLE_PWM_CTRL_REG       (* ( volatile uint16*)0x50003410)
/ N+ l$ F& B% v+ B    启动Timer0模块的时钟:CLK_PER_REG |= 0x0008;0 ^* s9 r. W4 e. L2 }, v" p# u
    定时器0初始化,选择高频时钟,正常PWM模式,无分频,则TIMER0_CTRL_REG = 0X0E;
. j3 g$ q) P" Z/ |    设置计数值为1000,高电平为500,低电平为200,则TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500; TIMER0_RELOAD_N_REG=200;
" T0 I2 E: v3 a) q2 ~) `, s. I3 x    开定时器中断NVIC_SetPriority (SWTIM_IRQn, 254); NVIC_EnableIRQ(SWTIM_IRQn);$ T# L/ z2 o( T
    启动定时器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);7 T, w( a# A+ J; J) M6 B
) D$ r# B  j$ _# L, j/ ?7 c4 U# _" {  K, N

- u/ o8 F' O" p, M% ]
8 j! m7 ~* F/ Q, R( w4 a    第三节 定时器实验
5 I. K3 @4 `! T
! x8 O" P; A; r! G$ d6 h6 C    实验需要使用的模块有:手机开发板底板,Jlink调试工具,杜邦线、3.7V锂电池或Mocro USB线。
: c5 D1 u( \. r% c' u) q  t    使用JLINK通过杜邦线连接手机蓝牙位于手机主控底板,连接方式如下:6 S9 t) e/ E* ?& {' C9 I: p
    (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:; |2 t& D2 E, B3 s
/ c, P' `0 s1 i3 W1 ]  s6 Q0 J
   
- o' R3 B0 X! g# t+ d2 c2 K    图12
; O' t9 o4 i$ h3 D# J% v- z    (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:
- S8 M3 Y$ A! b1 m% }$ f0 E4 L# C0 b$ a! Q4 c7 N( V4 Y) @
   ; [5 I6 Q) K$ r9 n9 u' k
    图13: \7 o0 J5 \: x
    将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
& n3 ?' o" |/ E' m' o; f  o  o    打开定时器实验的Keil工程timer0_general.uvproj,位于目录:% ]$ }3 x/ R! d# p8 \: n
    ..\WT_Mobile\1.初级教程\DA14580\3_初级_定时器\projects\target_apps\peripheral_examples\timer0\timer0_general\Keil_5。如下图所示:
, r% m# G/ W& K. h9 J# B! x1 v0 Q' t: \
   
  G+ Z, W: D* J    图14
" H$ d" @$ A( J  {    使用手环调试下载线连接好Jlink,编译,点击DEBUG,然后点击全速运行,则可以看到蓝色LED闪烁,如下图所示:
& }! y& e, v( |2 |
6 @- }; \7 _5 I2 p$ Y7 r
8 `! g- x$ S% b. l% H0 A8 S+ T+ P  a5 L  j
    * @3 a9 D3 b8 w6 ~$ b
    图15* I! I- ?/ O- e
" f, q- o* t. p1 m5 K

9 n" }5 s# e% y5 q( g( P4 U; y7 [

! A% |: ]2 g' H    文件下载请点击: Timer教程.pdf (750.77 KB, 下载次数: 0) ( Y; c7 r0 h1 ?+ X

. }9 p8 y4 b5 m$ v" U/ A
( I. T" A& y, K, f4 F! W3 h
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-13 11:00 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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