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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
ARM功能手机
——疯壳·开发板系列
定时器实验教程   
; @8 g4 ^5 p9 ~8 d3 D

2 ^: Y0 c: b( G# c7 F2 _0 K
% a5 ?2 ~) S" U  z7 t3 J& C8 ]4 h
6 W! t! o9 U6 \( d# e
5 ?' b% F. j4 w( `4 }8 k3 i    图13 A# f7 n, {" G) i6 g+ A5 \3 N+ C6 g7 U/ Q
0 Z0 s, B# Y5 g3 {  i% S

9 [) g9 ~8 e: p9 o    8LED硬件电路2 z3 U/ X! i7 T1 G) M) O

/ Q/ B& o3 ~: F  H$ i# |! T        板子中有一个可控LED,接在DA14580的P24引脚,LED串联1K的限流电阻,如下图所示:
1 d9 D0 r' n: B, B# O# Y' B2 V# `1 a' w' x7 k3 [+ R& }0 T2 a
   
/ r& i7 `: w* X9 O' f    图2; ~( b* R9 x! @; N3 j
9 z8 t. N' C( O9 Z6 e
    第二节 Timer寄存器5 A9 `' y- y; [$ U' |% U' c, H! t* l0 e
1 m% t  F: g3 }0 L
    2.1 Timer介绍
! q% c6 d3 S+ p6 ?) X
$ \4 q+ |9 d$ ]& C- j7 A2 m    软件定时器模块包含两个定时器模块,它们可以通过软件控制、编程并用于各种任务。
5 O4 V$ O  s9 \$ K2 E    2.1.1 Timer0
5 _6 t3 Z& j( Z0 v! q! \6 a) ~6 H5 D/ {& G2 a
    定时器0有16位的通用定时器;可以产生两路脉宽调制信号;可编程的输出频率;可编程的占空比;可编程的软件中断。1 I, D9 M7 Q8 m# l4 k5 [/ L' B3 |
    2.1.2 Timer25 E5 r" p! r! y  Y6 D
$ l9 ]& o8 b: g4 Y& r- C
    定时器2有14位的通用定时器;可以产生3路脉宽调制信号;输入时钟频率为16MHz;可编程的输入频率;占空比可调;用于白色LED的亮度控制。# w1 s! z8 n8 c7 v4 w; {% f2 ^
# u: U! \0 C- P; _5 g: E% o
    2.2 寄存器介绍
* V3 m+ m; R4 O- u3 Z; ]5 H- l6 J! P    2.2.1 定时器0控制寄存器
5 J, V2 _2 V7 l, Z) W5 H" L& z
" x: W$ B6 O' c. f8 D/ v' t  |' f    ( m- J& O- l, W. c% _# u( ^8 P% P
    图3
7 c# A$ c" Z) b    15:4位:保留不使用;! p9 E$ x* |  Q
    3位:PWM模式选择,’0’表示PWM信号为高时输出’1’,’1’表示PWM信号为高时输出快时钟信号的二分频,则输出频率范围为1~8MHz;& c9 l: k4 ]3 J: ?) D
    2位:定时器0的时钟分频,为’1’使用选择的时钟源频率,为’0’使用选择的时钟源进行10分频,注意这个值适用于计数寄存器;
9 F1 ~0 `4 K* I) p- @0 _    1位:时钟源选择,’1’使用快时钟(16、8、4、2MHz),’0’使用慢时钟(32KHz);
: B$ M( A$ y6 A2 R# R! l0 y    0位:定时器0控制位,’0’表示定时器0关闭并处于复位状态,’1’定时器0运行。
8 x/ f! a7 `# u: m+ b" a: h* `/ g1 {5 Z
    2.2.2 定时器0计数控制寄存器
, W" B9 W4 l( |7 S, b5 }. N( z% Z; ^. B

9 H! f4 G: v4 C! y# v    图4, t+ f8 d+ u) G/ \  p  M
    定时器0计数重新装载值,如果读取该寄存器则返回当前计数器的值。# ^4 T- Q8 a1 v$ |
    2.2.3 定时器0高电平重新装载值9 _3 T* h5 k; X0 S2 H
7 v* \2 r+ F- U6 b  V
    ! f" o+ R# |* \: s' g9 [
    图5: y0 u# g5 b) P* X8 H
    定时器0高电平重新装载值,如果读取该寄存器则返回定时器0的计数值。* Y- j- N3 i; Z3 n+ n
    2.2.4 定时器0低电平重新装载值
/ Y9 }( n: s) }" `/ e
! a  X! p, D6 G5 t, m: l    
; @. B+ y/ ^) v    图6  m5 K; \3 M+ J/ p7 ^! A* n# D6 \3 c
    定时器0低电平重新装载值,如果读取该寄存器则返回定时器0的计数值。: Y$ f. G8 u" p: B& j5 m
    2.2.5 PWM2占空比
4 n. |+ q3 K% I- v* d3 v7 t' ~2 |
   
4 S: _: K- d& c; W/ V" E3 _    图7# ^% p  M7 }0 Z: T
    PWM2信号的占空比。
8 M7 h$ Q! m' _( i/ w    2.2.6 PWM3占空比
8 a" q$ I! g- \% K7 A" J( q4 i; g, U3 P0 H
   3 l3 T6 G- _6 a8 ^. U; y
    图82 D7 D1 s1 q8 A( i& h
    PWM3信号的占空比。1 r/ l" g  k: M
    2.2.7 PWM4占空比: o8 F0 k0 y! e( P4 B2 o* C$ p

- Y& X8 m& a( A6 F5 V    , Q$ g' |6 K+ E/ |6 |  Q6 J  M
    图9, r( Q/ X5 }. e* X, f, D
    PWM4信号的占空比。: G& d9 U2 |- f) F1 t. x
    2.2.8 PWM2,3,4的频率' e8 ^) D; y9 U6 Z
/ m( W7 `0 ^5 ]/ B, \+ ^
   
8 \: P9 N8 b# c; D6 A+ ]5 ^! U3 F    图105 R" ~& x6 q0 `
    PWM2、3、4信号的频率,三个信号频率相同。
' D# O, R4 m& z- ]9 p/ v0 R+ l; s! \5 h" A
    2.2.9 PWM2,3,4控制寄存器( g. e; w$ v; W1 `: i
) x! L1 G, C( H- H/ O2 \2 u
   3 s* Y" V, m' U
    图11
1 K" Q% C) }& X    2位:硬件暂停使能,为’1’则硬件可以停止PWM2、3、4。2 s! S5 d. `9 I: `
    1位:软件暂停使能,为’1’则PWM2、3、4暂停。6 f+ }6 E- P  R" C! l
    0位:PWM信号使能,为’1’则PWM2、3、4使能。- |' |! w- i+ ]( ?; \4 S$ K7 Q

  K3 {9 l+ C1 |    2.3 寄存器配置讲解' a2 H( g  S( Y. N& p$ r5 s
    #define CLK_PER_REG             (* ( volatile uint16*)0x50000004)
0 e% {5 R! W9 w" u  s/ t1 v* u: @    #define TIMER0_CTRL_REG         (* ( volatile uint16*)0x50003400)9 P* R0 Q( l$ v
    #define TIMER0_ON_REG           (* ( volatile uint16*)0x50003402)7 L/ L0 J" g0 |& a/ q+ L8 A
    #define TIMER0_RELOAD_M_REG     (* ( volatile uint16*)0x50003404)
( F3 b* v* U2 s1 C' c# W    #define TIMER0_RELOAD_N_REG      (* ( volatile uint16*)0x50003406)
) d# f" D0 x' o- k    #define PWM2_DUTY_CYCLE          (* ( volatile uint16*)0x50003408); {7 i  l5 a. h9 V3 d8 I# b+ K
    #define PWM3_DUTY_CYCLE          (* ( volatile uint16*)0x5000340A)
2 a# _: O0 [( ~/ k1 E9 q6 p# O    #define PWM4_DUTY_CYCLE          (* ( volatile uint16*)0x5000340C)+ Q' v+ l' ^* O  L' C& H( W( q
    #define TRIPLE_PWM_FREQUENCY     (* ( volatile uint16*)0x5000340E)
5 I; v7 _5 M/ l9 }6 i  k/ f    #define TRIPLE_PWM_CTRL_REG       (* ( volatile uint16*)0x50003410)
  n- ]8 T/ G8 s0 I- D    启动Timer0模块的时钟:CLK_PER_REG |= 0x0008;1 I( R) z5 P: U& j
    定时器0初始化,选择高频时钟,正常PWM模式,无分频,则TIMER0_CTRL_REG = 0X0E;
8 d, d5 r* s# I3 t# ?    设置计数值为1000,高电平为500,低电平为200,则TIMER0_ON_REG=1000; TIMER0_RELOAD_M_REG=500; TIMER0_RELOAD_N_REG=200;& H+ i* z: F& M  e; `. P8 M0 \7 r
    开定时器中断NVIC_SetPriority (SWTIM_IRQn, 254); NVIC_EnableIRQ(SWTIM_IRQn);
2 b# ?/ W* Q- Q) R* C0 a  {! s  I    启动定时器TIMER0_CTRL_REG = (TIMER0_CTRL_REG|0x01);. e5 v( q( ?8 j6 R- {2 x/ h
7 J7 a5 m' l% M4 R0 D0 B

( Y% o5 F$ |' r% U1 W% Y/ j$ T( A+ {1 f7 i$ n
    第三节 定时器实验
5 K- N2 y% L  X, Z+ d4 q% S( Y
, z$ n; a% \: \, x3 m    实验需要使用的模块有:手机开发板底板,Jlink调试工具,杜邦线、3.7V锂电池或Mocro USB线。
9 x/ j+ s3 k; G- C( W% N& l    使用JLINK通过杜邦线连接手机蓝牙位于手机主控底板,连接方式如下:
0 `: l5 q. h8 F) f* S3 V* {    (1)JLINK一端只需要使用杜邦线连接JLINK的SWC、SWD、GND三个引脚,如下图所示:& G$ U- S! Q2 T6 [
$ y& r7 F) o  @, T5 d; I
   ; c+ Y2 d, G# C0 t5 }1 \8 d, _& J7 j
    图12
0 P7 o7 E  q& R7 Y    (2)手机蓝牙一端需要使用杜邦线连接上方右侧的J3三个引脚,与JLINK的连接引脚一一对应,分别为SWC-->SWCLK、SWD-->SWDIO、GND-->GND,如下图所示:
  u: v1 r* v5 _0 p) q8 _; u
0 t6 {- ]: L* q3 \    
- ?7 {4 W7 e; `) C; Y. s4 ]1 a    图13
5 y2 R+ }. ^. Z3 U  d' B% N! A; X    将JLINK插上电脑的USB接口,连接好之后给手机主控底板供电,详细的介绍可以参考《如何上电》教程,路径为:..\WT_Mobile\0.从这里开始\0.开机测试。% Q$ Y$ G* e( Y2 y5 j
    打开定时器实验的Keil工程timer0_general.uvproj,位于目录:
$ z* ^3 Z. c4 Y    ..\WT_Mobile\1.初级教程\DA14580\3_初级_定时器\projects\target_apps\peripheral_examples\timer0\timer0_general\Keil_5。如下图所示:
$ ^) F! V5 p8 V8 v! H$ |4 u7 ~+ d6 z! h2 Z8 i
      b: D0 m4 y% z6 g4 \6 }9 ]
    图14
  c" P- T$ m" e0 m; t. ^# K( R; n! k' M    使用手环调试下载线连接好Jlink,编译,点击DEBUG,然后点击全速运行,则可以看到蓝色LED闪烁,如下图所示:
% U* l& C4 s% _/ h+ {/ H/ j: C) P* ?% f9 `0 S  M
# X# A- \7 u) K+ Q
, t* X# I* l; W* \' K
    ' o( Y8 [' L, ^& ~( a
    图15
* [. h- S; I6 z& W; G8 O2 w1 f* B
) A8 s/ V- N2 r; x: l  `0 E$ b  r4 A, Z; G

" d! R  g1 |$ @$ W2 C3 B' {, n
& A, j- y) C( c) t) `    文件下载请点击: Timer教程.pdf (750.77 KB, 下载次数: 0) ' `0 Y9 [; v! o+ o( P2 t+ ?- |( f! r  W
$ ], q+ p! S1 ?& m
, S' U/ W5 T  T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-25 20:35 , Processed in 0.140625 second(s), 27 queries , Gzip On.

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

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

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