微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > GNU ARM汇编--(九)s3c2440的PWM

GNU ARM汇编--(九)s3c2440的PWM

时间:11-26 来源:互联网 点击:

(注:因为TQ2440的板子是用TOUT0来控制蜂鸣器的,所以有些寄存器就不关注了)

定时器配置寄存器0(TCFG0)

定时器输入时钟周期 = PCLK/(prescaler + 1)/(divider value)

{prescaler} = 0~255

{divider value} = 2,4,8,16

Register Address R/W Description

TCFG0 0x51000000 R/W 配置两个8的预分频器

TCFG0 Bit Description

Dead zone length [23:16] 死区的长度,长度等于timer0的单位长度

Prescaler1 [15:8] 这个是给Timer2 3 4用的

Prescaler0 [7:0] 这个是给Timer0 1用的

定时器配置寄存器1(TCFG1)

Register Address R/W Description

TCFG1 0x51000004 R/W 5路MUX和DMA模式选择寄存器

TCFG1 Bit Description

DMA mode [23:20] 选择DMA请求通道

0000=No select 0001=Timer00010=Timer1

0011=Timer20100=Timer3 0101=Timer4

MUX4 [19:16] 为PWM Timer4选择复用输入

0000=1/2 0001=1/4 0000=1/8

0011=1/16 01xx=External TCLK1

MUX3 [15:12] 为PWM Timer3选择复用输入

0000=1/2 0001=1/4 0000=1/8

0011=1/16 01xx=External TCLK1

MUX2 [11:8] 为PWM Timer2选择复用输入

0000=1/2 0001=1/4 0000=1/8

0011=1/16 01xx=External TCLK1

MUX1 [7:4] 为PWM Timer1选择复用输入

0000=1/2 0001=1/4 0010=1/8

0011=1/16 01xx=External TCLK1

MUX0 [3:0] 为PWM Timer0选择复用输入

0000=1/2 0001=1/4 0010=1/8

0011=1/16 01xx=External TCLK1

Timer控制寄存器

Register Address R/W Description

TCON 0x51000008 R/W 定时器控制寄存器

TCON Bit Descrption

Dead zone enable [4] 决定死区的操作 0=disable 1=enable

Timer0 auto reload on/off [3] 决定Timer0的自动重载 0=one-shot 1=auto reload

Timer0 output inverter on/off [2] 决定Timer0的输出电平反转开关0=关闭 1=打开TOUT0的反转

Timer0手动更新(注意) [1] 决定Timer0的手动更新位0=不操作 1=更新TCNTB0&TCMPB0

Timer0开始/停止 [0] 决定Timer0的开始/关闭0=停止 1=开启

注意:在下次写之前要被清除

Timer0 COUNT BUFFER REGISTER & COMPARE BUFFER REGISTER(TCNTB0/TCMPB0)

Register Address R/W Description

TCNTB0 0x5100000c R/W Timer0计数缓冲寄存器

TCMPB0 0x51000010 R/W Timer0比较缓冲寄存器

TCMPB0 Bit Description

定时器比较缓冲寄存器 [15:0] 为Timer0设置比较缓冲值

TCNTB0 Bit Description

定时器计数缓冲寄存器 [15:0] 为Timer0设置计数缓冲值

Timer0计数观察寄存器(TCNTO0)

Register Address R/W Description

TCNTO0 0x51000014 R Timer0计数观察寄存器

按照datasheet的一些说明和步骤,给出汇编代码:

[cpp]view plaincopy

  1. /*
  2. copyleft@dndxhej@gmail.com
  3. */
  4. .equNOINT,0xc0
  5. .equGPBCON,0x56000010@led
  6. .equGPBDAT,0x56000014@led
  7. .equGPBUP,0x56000018@led
  8. .equGPFCON,0x56000050@interruptconfig
  9. .equEINTMASK,0x560000a4
  10. .equEXTINT0,0x56000088
  11. .equEXTINT1,0x5600008c
  12. .equEXTINT2,0x560000

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top