- UID
- 1029342
- 性别
- 男
|
/******************************************************
*作 者:温子祺
*联系方式:wenziqi@hotmail.com
*创建事件:2010-09-06
*说 明:S3C2440 进行微秒级、毫秒级延时函数
******************************************************/
MCLK:405MHz
HCLK:135MHz
PCLK:67.5MHz
在这里定时器时钟频率为PCLK/8=67.5/8=8.4375MHz
定时器0示例代码:
[url=][/url]
1 void T0DelayNus(UINT16 t)
2 {
3 rTCFG1 &=
~0x0F;
4 rTCFG1 |=
2;
5 rTCNTB0 =(S3C2440PCLK)/8/1000000; //时钟频率为PCLK/8
6
//除以1000000表示进行微秒级延时
7
rTCON &=
~0x0F;
8 rTCON |= (1<<3)|(1<<1)|(1<<0);
9 rTCON &=
~(1<<1);
10
11
12
while(t--)
13 {
14
while(rTCNTO0!=(rTCNTB0-1));
15 }
16
17 rTCON &=
~(1<<0); //停止定时器0
18
19 }
20
21
void T0DelayNms(UINT16 t)
22 {
23 rTCFG1 &=
~0x0F;
24 rTCFG1 |=
2;
25 rTCNTB0 =(S3C2440PCLK)/8/1000; //时钟频率为PCLK/8
26
//除以1000表示进行毫级延时
27
rTCON &=
~0x0F;
28 rTCON |= (1<<3)|(1<<1)|(1<<0);
29 rTCON &=
~(1<<1);
30
31
while(t--)
32 {
33
while(rTCNTO0!=(rTCNTB0-1));
34 }
35
36 rTCON &=
~(1<<0); //停止定时器0
37
}
[url=][/url]
定时器1示例代码:
转载请注明出处,谢谢! |
|