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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

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

2 |9 L8 b9 s5 _2 R; a$ b& K8 V( I" K
- Z9 _7 N+ j( z: k. G8 S) S

. J4 z7 c# [4 b% N# t  L* B; p . B" I) w# i: w$ o
    图18 G: ~$ j" I3 S

( r5 N9 z7 T' J! o1 _# Z1 t& M8 x9 p2 E- h) t( [: j
    8LED硬件电路5 U) {+ w9 y' y+ [

8 a$ [) g. S+ j3 s' h. S        板子中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流电阻,如下图所示:, I( c1 e  R& l! }* |
' x0 m8 p/ Z7 q. e2 t: F
    9 d# z* }8 C: x  I( g! r
    图2
' @; f$ r. P# s9 J. ~+ R
7 J$ b- a3 o5 G5 V" n4 }: h    第二节 Timer寄存器
* W! n4 F- f4 L
5 e0 A" d# t( Q( w    2.1 Timer介绍
8 M7 r, a% c2 S. Y+ H. f1 w1 ^7 ~; z" H
    软件定时器模块包含两个定时器模块,它们可以通过软件控制、编程并用于各种任务。
2 _, i7 ^5 t* p. G/ H3 l    2.1.1 Timer0+ R+ }7 p: J+ }3 V5 P* o

9 @2 b% D: M) C5 d    定时器0有16位的通用定时器;可以产生两路脉宽调制信号;可编程的输出频率;可编程的占空比;可编程的软件中断。3 `: n& e" E  @) |
    2.1.2 Timer2" `2 I9 E+ q- s" _

7 w4 ^' v* ?- L/ F    定时器2有14位的通用定时器;可以产生3路脉宽调制信号;输入时钟频率为16MHz;可编程的输入频率;占空比可调;用于白色LED的亮度控制。
% T1 Q" ]% U" E/ D/ @
* z4 |  q* a) R5 ^1 U& B    2.2 寄存器介绍
4 [+ a& c8 q1 i* d    2.2.1 定时器0控制寄存器5 }  b4 |+ u7 a6 \" O+ Z; Q

' e$ a9 p+ j( L6 K2 x- h( |6 W    ( l- t! O$ x& E6 a) S6 |
    图3! I  O8 i( d" Z2 k( l
    15:4位:保留不使用;
  p% u0 F' z; d# ]: b* x- t    3位:PWM模式选择,’0’表示PWM信号为高时输出’1’,’1’表示PWM信号为高时输出快时钟信号的二分频,则输出频率范围为1~8MHz;. @4 Y( U# B0 X! e& ^
    2位:定时器0的时钟分频,为’1’使用选择的时钟源频率,为’0’使用选择的时钟源进行10分频,注意这个值适用于计数寄存器;
, z( ?' d+ `2 M+ z8 N    1位:时钟源选择,’1’使用快时钟(16、8、4、2MHz),’0’使用慢时钟(32KHz);
% t' h. `$ p9 [0 @    0位:定时器0控制位,’0’表示定时器0关闭并处于复位状态,’1’定时器0运行。1 l/ O4 g  [! Z
2 K5 @( g5 ?' H9 I8 ^# O- ]8 [
    2.2.2 定时器0计数控制寄存器
* ]. _* W' b. P2 a2 d7 V5 @0 E9 i% a- o% X$ f( \- @
4 ]2 b# E# q, c& P* t
    图4
1 k7 }0 g! f8 _* |    定时器0计数重新装载值,如果读取该寄存器则返回当前计数器的值。) p6 G. |( x" \' k  j# ^8 a
    2.2.3 定时器0高电平重新装载值
; j" K" c+ E& J7 D; a- A# `+ k+ w9 K1 u% i. L
   
: H6 y8 G! g- n- R    图5
, h/ y) ]4 k% H: M, t    定时器0高电平重新装载值,如果读取该寄存器则返回定时器0的计数值。
/ I" X: l/ m8 ^* k' V. D  ?    2.2.4 定时器0低电平重新装载值
9 F0 t" T6 `) m8 o5 n& z& P2 @" `/ v
   
; l. \* D7 x& Q  Q  H9 H" A7 Y    图6
- |1 @; d" _+ L    定时器0低电平重新装载值,如果读取该寄存器则返回定时器0的计数值。" [* B9 a; m7 g$ n( k
    2.2.5 PWM2占空比: R( h; D1 s! q9 w+ H, k- d" e

3 V' z. _5 F9 Z- s+ L: {    
) c% c2 ?) J# z5 O) ?6 F    图7
7 x# f8 w" G& n( W- f9 p: L    PWM2信号的占空比。( `% o, [. l4 i8 f
    2.2.6 PWM3占空比/ W& |( H$ k) n$ u  R3 l7 I+ D

; Z' l7 x! r+ `: A  V1 K    ' `: P% i* ~% |6 @/ a
    图84 A  \2 a% X# W4 E. S
    PWM3信号的占空比。9 G7 R8 R; N9 y
    2.2.7 PWM4占空比
0 ?% Y: M# L0 L3 Z& n0 {* V$ a2 L" ^$ c5 @8 m- g: G8 e! m
   
2 q$ @9 b' q0 w+ r    图98 h' s4 s' o' F1 e: K1 ?! t, X
    PWM4信号的占空比。
1 S/ H# B4 h& i# o8 G! }    2.2.8 PWM2,3,4的频率
) x1 v1 `5 T8 V% u+ X6 w4 `1 b2 p' g4 j0 q( E
   : x, ^$ ~* m0 R4 M, e7 m* Z9 c8 T6 i
    图10
1 U; j9 c( i6 e0 N9 N' {$ A0 q    PWM2、3、4信号的频率,三个信号频率相同。3 j" Q% p9 [- P# y
8 g1 Y0 ]; s. c, ~
    2.2.9 PWM2,3,4控制寄存器+ L! {; a3 f% S/ }+ y3 `5 B

# G1 `; I; `, S& w    
5 }# ~! t  p) [    图11
9 B9 ^* ~. G8 S' f    2位:硬件暂停使能,为’1’则硬件可以停止PWM2、3、4。
; Q. H0 h3 X& J( U6 V0 m  L    1位:软件暂停使能,为’1’则PWM2、3、4暂停。
" Y- b. Y6 q  t    0位:PWM信号使能,为’1’则PWM2、3、4使能。1 J* O, v" G7 ?/ e) j

1 M+ J' z' p4 s* N2 y    2.3 寄存器配置讲解
, U9 A0 n; e( M1 G$ c1 v- p    #define CLK_PER_REG             (* ( volatile uint16*)0x50000004)
5 ^7 b' [, M; R) d    #define TIMER0_CTRL_REG         (* ( volatile uint16*)0x50003400)
7 i' N5 K, v/ v; z    #define TIMER0_ON_REG           (* ( volatile uint16*)0x50003402)
, Z1 R( }- t( O$ f    #define TIMER0_RELOAD_M_REG     (* ( volatile uint16*)0x50003404)$ Z7 L8 Z$ j, f9 K, r/ _
    #define TIMER0_RELOAD_N_REG      (* ( volatile uint16*)0x50003406)
6 ], \! p" Q( H1 q" t; W    #define PWM2_DUTY_CYCLE          (* ( volatile uint16*)0x50003408)
4 l1 f& }+ i: ^7 r: T/ m2 s7 F    #define PWM3_DUTY_CYCLE          (* ( volatile uint16*)0x5000340A)$ q' d5 }& }" `! p, y
    #define PWM4_DUTY_CYCLE          (* ( volatile uint16*)0x5000340C)( U2 F; o7 t& `9 x* t1 a/ T
    #define TRIPLE_PWM_FREQUENCY     (* ( volatile uint16*)0x5000340E)7 M' Q* U4 s# L$ E
    #define TRIPLE_PWM_CTRL_REG       (* ( volatile uint16*)0x50003410)
: H4 S2 q* y$ c6 e8 G/ D6 R    启动Timer0模块的时钟:CLK_PER_REG |= 0x0008;
# U% H( b. ^4 V    定时器0初始化,选择高频时钟,正常PWM模式,无分频,则TIMER0_CTRL_REG = 0X0E;
3 d0 ]/ X' E  N. f- s9 ~$ q    设置计数值为1000,高电平为500,低电平为200,则TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500; TIMER0_RELOAD_N_REG=200;
4 C: p0 [; M/ _( ^$ _2 S* m4 Y" Q! Z    开定时器中断NVIC_SetPriority (SWTIM_IRQn, 254); NVIC_EnableIRQ(SWTIM_IRQn);
3 V- p: H% s. K2 \2 j* `2 x    启动定时器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);
0 a" G1 S% w" X% J: @
/ w% W; K% z! g( G7 t" Z! X& |
* O, U: B* M3 {
+ b5 a! `3 B- h! A4 N1 R! v# Y! ?6 V    第三节 定时器实验
) I0 @6 i9 H* k% t9 W! p  z- Y, c8 y2 E! F8 Z5 K9 w8 D
    实验需要使用的模块有:手机开发板底板,Jlink调试工具,杜邦线、3.7V锂电池或Mocro USB线。
" x8 A8 `5 V7 k    使用JLINK通过杜邦线连接手机蓝牙位于手机主控底板,连接方式如下:* O4 |& V8 ?  \" m
    (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:; [% V# v: @4 W- `

+ R7 ~3 H( J7 ]+ O, D, S    & r6 U" F- ^) U! p
    图12
* F* J# [& E; T5 y' v5 j    (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:
1 e  n9 q/ D% W- w$ e9 n9 y1 s4 z1 f: P. P% n
   
- _! L% w1 |2 A& R    图13  e: @, s2 b# W5 Z+ O: Z
    将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
( j3 m% G# ?1 c( f7 }. x" E9 G    打开定时器实验的Keil工程timer0_general.uvproj,位于目录:0 F! n" S- ]9 b3 H" n' A
    ..\WT_Mobile\1.初级教程\DA14580\3_初级_定时器\projects\target_apps\peripheral_examples\timer0\timer0_general\Keil_5。如下图所示:
" \4 `! r) S+ O3 j7 N' d& c1 V
, e+ ~' u4 |; g+ \. m( J% {     * r6 a8 D4 ~1 N/ b% M" w6 \
    图14: m# Z/ R; K1 F: l( A) c
    使用手环调试下载线连接好Jlink,编译,点击DEBUG,然后点击全速运行,则可以看到蓝色LED闪烁,如下图所示:' s" X; J0 T, e$ X. Y# j% r( L
( W/ _8 X: K' r- ^+ R! y

! F* a# U! D! h$ S/ _9 a) y
# f/ F5 ^+ x, |, q  T5 W  y/ l) V/ E    
+ f8 @6 y7 T5 d$ L( n0 I. Y* E    图15$ |- J7 c9 T' F

% t3 q* F; Q& h+ t3 f
- `6 r6 N" {# [9 j4 v, X3 B6 c. R+ m, B* d) G4 A5 |1 |
% ]7 {" D, B0 g0 z3 ?
    文件下载请点击: Timer教程.pdf (750.77 KB, 下载次数: 0) $ o3 A0 Q" @9 R; d' E
% h8 p8 c) n4 K1 t. X( I

# n' t; q) f: C* t& Q1 Y! X1 ?. C
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-29 14:49 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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