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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ARM功能手机
——疯壳·开发板系列
定时器实验教程   
7 A; l& B) o# I' c% @5 V

6 @% \( h; T* K! X: q
; r, M- }6 ~( [* ^& K7 Z/ E5 {2 c; P8 m1 D* a

& l1 c8 P; z9 T    图1  t) @# ^4 _) |5 }6 V( Q

. C; r* j4 ?$ p0 N. C9 ]
0 M; b. [$ p* V9 ^( X, K    8LED硬件电路+ _+ U5 G4 G5 a- A# \

6 l  W6 k/ k. Z2 ~4 O! N        板子中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流电阻,如下图所示:$ v6 N9 c6 M; _. o. a: r

5 c5 u) g. W/ d5 ]    
5 [6 Z, O( j5 }0 L    图2% b$ D; }: K9 o/ l) V4 \+ t3 u) V
/ s% g3 d) c1 l' d6 L: B4 t, j
    第二节 Timer寄存器
0 A5 X7 }, P& k; J) v
: g9 [) W2 v& w    2.1 Timer介绍; Y5 |2 g9 J6 p+ O( E% ~
% V8 d- {$ e& m  ^6 h
    软件定时器模块包含两个定时器模块,它们可以通过软件控制、编程并用于各种任务。
: L& x% f9 W4 S- }/ t, F    2.1.1 Timer02 y$ n4 g# }9 ~! o0 X* D
; U( Q& b& A# R/ x7 G1 V3 G5 k9 \
    定时器0有16位的通用定时器;可以产生两路脉宽调制信号;可编程的输出频率;可编程的占空比;可编程的软件中断。, O& N* n$ G+ q0 ]( r
    2.1.2 Timer2
4 ?1 V* I* Z. C$ a" c' |% a) y5 k3 d& O- i9 [% ]$ G$ w3 Y. e
    定时器2有14位的通用定时器;可以产生3路脉宽调制信号;输入时钟频率为16MHz;可编程的输入频率;占空比可调;用于白色LED的亮度控制。
" h! J- ^$ }+ P! v1 ^' c  X6 M
) J4 Y2 w5 m: v! S    2.2 寄存器介绍( p8 K4 s- ^" i6 m5 i
    2.2.1 定时器0控制寄存器( c; F3 ^+ d7 O7 T: j% R9 F6 ^9 l

3 O  i9 p2 s' Q. i7 J    $ T# b* b/ x( w" J. o# G" q
    图3
" V& h0 {' [( `5 c1 Q" ~$ W1 s    15:4位:保留不使用;
' V( V  h9 P& Q4 g    3位:PWM模式选择,’0’表示PWM信号为高时输出’1’,’1’表示PWM信号为高时输出快时钟信号的二分频,则输出频率范围为1~8MHz;5 {3 V' c: V4 ^# [3 {
    2位:定时器0的时钟分频,为’1’使用选择的时钟源频率,为’0’使用选择的时钟源进行10分频,注意这个值适用于计数寄存器;; _- _4 V  e+ o6 M  N' E
    1位:时钟源选择,’1’使用快时钟(16、8、4、2MHz),’0’使用慢时钟(32KHz);" H5 F4 G. H3 _$ b6 s
    0位:定时器0控制位,’0’表示定时器0关闭并处于复位状态,’1’定时器0运行。: v- F1 A% d) k2 {5 z. Y# b
% _+ V3 o% n& i! w! p, G4 D* k
    2.2.2 定时器0计数控制寄存器
8 i. i/ b2 R1 w: Q6 [) L2 n3 Q2 ^" T) Z( U# f4 p
   
, P4 c/ S$ F) K! W    图4
! g  [- v# w1 K; `    定时器0计数重新装载值,如果读取该寄存器则返回当前计数器的值。
: I- O* e6 N. s    2.2.3 定时器0高电平重新装载值9 N1 n. C- x1 o1 `2 h: @; ?

' t9 N7 X+ u* |- g. v, ^& c; |     . v1 G: c; F/ Z5 g( f
    图5
, ?9 |! }3 Q! }3 T" l% c    定时器0高电平重新装载值,如果读取该寄存器则返回定时器0的计数值。
) |8 R. c3 j8 v! S: H4 z7 R8 j/ u    2.2.4 定时器0低电平重新装载值! @1 v3 V* b' n6 p* W
% Z% ]4 J! X7 ?6 E4 M$ G
   ! ~, P) a* j6 Z  t( A
    图6
& `- M7 W9 `2 [3 g    定时器0低电平重新装载值,如果读取该寄存器则返回定时器0的计数值。
% W% q- {7 ^2 Z    2.2.5 PWM2占空比
6 I' C& J7 `6 l2 H- w- B3 w
5 b( K' i0 m. G+ [5 @6 K    ( `# ], K  e* q/ l" w, D
    图76 I6 e1 ~0 Q% \9 l# I
    PWM2信号的占空比。2 ^/ T0 C6 H" g
    2.2.6 PWM3占空比
* z: i/ z; Q" _; U# _9 r7 T) n. c2 S5 G5 d
  9 C+ j$ H4 y" H, B6 o. c& V
    图8" R/ n* y$ c* L2 R3 C5 v2 |
    PWM3信号的占空比。8 m! ?, A  B9 d, i) k
    2.2.7 PWM4占空比& V, s4 Z( o# V6 |% t6 D5 ^* v) [

9 Y+ ]3 x8 x+ w# y9 L* Z     * _9 ^5 n; Q( _2 o' ^
    图90 ^% ^; C4 n+ u' Q$ B
    PWM4信号的占空比。
" I4 a- k1 W. T  u" e6 E    2.2.8 PWM2,3,4的频率7 P/ r8 m3 A& q& |6 s0 W7 ]3 _
/ m" w& e) ^0 }; W4 n
    6 N2 C4 `" k4 Z/ i, w: M
    图10
" w  j( s0 ]% w- ]& Y, U    PWM2、3、4信号的频率,三个信号频率相同。+ V9 e6 u+ Y* |6 W% A

  y+ ]- S; J6 [: F    2.2.9 PWM2,3,4控制寄存器
; \1 w" X/ B. Z2 m" s5 d* d0 q" ~0 w  W
   
" q$ W7 I8 B8 _* `  _9 b7 l    图11
" r3 z3 B! L& e- K    2位:硬件暂停使能,为’1’则硬件可以停止PWM2、3、4。
7 ^# d, D6 `1 l4 w. T    1位:软件暂停使能,为’1’则PWM2、3、4暂停。
  D, N, I* v# V$ R7 R    0位:PWM信号使能,为’1’则PWM2、3、4使能。
) y/ G) i* m2 g$ O; t. }  `
4 P- z, U6 m" k; ?    2.3 寄存器配置讲解3 t$ [, {9 J) q( P6 i5 V4 o  u6 u
    #define CLK_PER_REG             (* ( volatile uint16*)0x50000004)" ]: Y! k- C, @& h
    #define TIMER0_CTRL_REG         (* ( volatile uint16*)0x50003400)
/ B& d4 ?9 n& _3 A) l& i    #define TIMER0_ON_REG           (* ( volatile uint16*)0x50003402)
& v  J8 i/ P9 i6 M8 Q# i    #define TIMER0_RELOAD_M_REG     (* ( volatile uint16*)0x50003404)
/ ?+ x/ `# _! ~3 R+ s8 j3 g    #define TIMER0_RELOAD_N_REG      (* ( volatile uint16*)0x50003406)5 J1 r& l8 ?1 W( o/ {
    #define PWM2_DUTY_CYCLE          (* ( volatile uint16*)0x50003408)
" _# B5 |- V4 x  F4 u    #define PWM3_DUTY_CYCLE          (* ( volatile uint16*)0x5000340A)
2 a0 H2 G* q1 e# m: Q  U/ P    #define PWM4_DUTY_CYCLE          (* ( volatile uint16*)0x5000340C)
7 ~/ N3 c5 @  O$ H; b    #define TRIPLE_PWM_FREQUENCY     (* ( volatile uint16*)0x5000340E)
  P2 \; m! d( f5 [, ~4 c    #define TRIPLE_PWM_CTRL_REG       (* ( volatile uint16*)0x50003410)  k/ G1 Q4 F# ~+ S! F: w
    启动Timer0模块的时钟:CLK_PER_REG |= 0x0008;' B+ ~, b/ Q( Q" G3 k0 e7 N
    定时器0初始化,选择高频时钟,正常PWM模式,无分频,则TIMER0_CTRL_REG = 0X0E;
2 V  F7 C4 f' u3 s5 t3 P    设置计数值为1000,高电平为500,低电平为200,则TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500; TIMER0_RELOAD_N_REG=200;1 j+ ~% c. Y9 P7 O
    开定时器中断NVIC_SetPriority (SWTIM_IRQn, 254); NVIC_EnableIRQ(SWTIM_IRQn);1 T6 I5 f+ p# _/ k/ D
    启动定时器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);" ^" A; X; @: h: g9 T0 \/ e6 f) z
5 m$ c, E6 X7 m, p+ W; B6 \+ ]' I
( Q" I1 s* k" J" N8 J' [% r4 L! T

" X/ ]9 c2 ~- D# c; |1 E    第三节 定时器实验8 v8 p$ x8 a$ P. |0 W6 g" w& s
- _; \& L, O/ t0 h" f( V- ?
    实验需要使用的模块有:手机开发板底板,Jlink调试工具,杜邦线、3.7V锂电池或Mocro USB线。
; ^$ B! n7 P) w" `- X9 l$ l    使用JLINK通过杜邦线连接手机蓝牙位于手机主控底板,连接方式如下:
2 W. [6 V! z' d: c# M    (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:
% W8 a  O% p$ W( U2 N0 i
# F) d: T" O+ A4 M     . L% Q4 H4 o9 y$ O$ X$ s8 \
    图128 J2 U0 x! M4 d* x. F$ W' U% _
    (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:
2 Q0 \7 r- O3 {1 e, @
& A, w% z3 v9 x8 f) z
6 _1 G" k" c/ `    图136 _# l3 h! j$ X# U9 |( g! x& Y
    将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。
! B0 i! B; \4 j1 Q4 G7 ]    打开定时器实验的Keil工程timer0_general.uvproj,位于目录:
% m' L4 Q8 o6 y* |! R    ..\WT_Mobile\1.初级教程\DA14580\3_初级_定时器\projects\target_apps\peripheral_examples\timer0\timer0_general\Keil_5。如下图所示:
; B& H5 k, v" [( g; E
6 N3 E2 a" ?, V! Z    # ?! d9 c/ S# Z
    图14/ H3 C% U* X2 O; L. O
    使用手环调试下载线连接好Jlink,编译,点击DEBUG,然后点击全速运行,则可以看到蓝色LED闪烁,如下图所示:
5 f' G' G9 L! a! n! c% ^
, I# T) N* h" \ 0 b- j2 M7 [: z# }

8 d! _& m0 e  N" N: Q1 E
1 \, n% A% R% R! k" C    图15
' X# I) x1 B( i: t0 A6 x  c
: A  }0 g- Y( z/ ]4 b: E% b- F9 }& n/ u5 n7 @. Q2 u% ?, K) B
# T/ D. q# e3 H, M
    文件下载请点击: Timer教程.pdf (750.77 KB, 下载次数: 0)
: ]4 u7 y1 f, j6 m* I0 A" U9 ?8 L! ?7 \

9 |* S% n/ Z+ T6 J8 A+ W; Z. U

该用户从未签到

2#
发表于 2022-9-2 18:18 | 只看该作者
这个看起来使用liunx系统的,实训的时候用过觉得不错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-12 15:28 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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