GNU ARM汇编--(九)s3c2440的PWM
(注:因为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
/* - copyleft@dndxhej@gmail.com
- */
- .equNOINT,0xc0
- .equGPBCON,0x56000010@led
- .equGPBDAT,0x56000014@led
- .equGPBUP,0x56000018@led
- .equGPFCON,0x56000050@interruptconfig
- .equEINTMASK,0x560000a4
- .equEXTINT0,0x56000088
- .equEXTINT1,0x5600008c
- .equEXTINT2,0x560000
ARM汇编s3c2440PW 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)