天嵌 ARM开发社区

 找回密码
 注册
查看: 2962|回复: 0

wince6.0 定时器

[复制链接]
ztt725 发表于 2012-11-20 09:59:45 | 显示全部楼层 |阅读模式
s3c2440本身有5个定时器,其中一个是内部看门狗使用,我们不能使用。
还有两个是用于触摸屏的定时,我们也是不能使用的。
只剩0和1两个寄存器我们可以自己使用,这两个定时器有固定的引脚输出,在GPIO上。
我们实验室所使用的定时器是工作在中断模式,所以下面的是一些定时器的基本设置:
BOOL TIMER_Init()
{
v_pPWMregs->TCFG0&=~(0xff);
v_pPWMregs->TCFG0|=(334);//预分频值335
v_pPWMregs->TCFG1&=~(0xf0000f<<0);//中断、1/2
v_pPWMregs->TCNTB0&=~(0xff);//计数值
v_pPWMregs->TCNTB0|=10& 0xFFFF;//计数值为10
RETAILMSG(DEBUG,(TEXT("TIMER_Init----\r\n")));
v_pPWMregs->TCON &= ~0x1f;    // Timer0 TCON
v_pPWMregs->TCON = v_pPWMregs->TCON & (~0x0F) | (1 << 1);    // 更新TCNTB0, TCMPB0
RETAILMSG(DEBUG, (TEXT("TCFG0=(0x%x),TCFG1=(0x%x),TCNTB0=(0x%x),TCON=(0x%x).\r\n"),v_pPWMregs->TCFG0,v_pPWMregs->TCFG1,v_pPWMregs->TCNTB0,v_pPWMregs->TCON));
v_pPWMregs->TCON = v_pPWMregs->TCON & (~0x0F) | (1 << 0) | (1 << 3);    // 开启定时器,自动重载
v_pPWMregs->TCON &=~2;//clear manual update bit
RETAILMSG(DEBUG, (TEXT("TCFG0=(0x%x),TCFG1=(0x%x),TCNTB0=(0x%x),TCON=(0x%x).\r\n"),v_pPWMregs->TCFG0,v_pPWMregs->TCFG1,v_pPWMregs->TCNTB0,v_pPWMregs->TCON));
return TRUE;
}
实验结果:正常开启了计时器,正常进入中断,中断频率为PCLK/(335*2*10)
2012.11.16
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-20 01:58 , Processed in 1.062500 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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