S3C2440定时器的使用

 

#include "mytimer.h"
#include "lhg_def.h"
#include "uart.h"
#include "lhg_def.h"
#include "2440addr.h"

//Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value}
//PCLK=50Mhz
//prescaler : 0~255
#define prescaler234 99
//divider : 1/2,1/4,1/8,1/16 选择为(0,1,2,3)
#define divider4 2
//定时器设置为62500HZ


void __irq timer4ISP(void) //中断函数
{
  rSRCPND |= rSRCPND|(0x1<<14);
  rINTPND |= rINTPND|(0x1<<14);
 
  Uart_Printf("now in timer4 interrupt~~ ");
}

void mytimer_init(void)//初始化定时器
{
   Uart_Printf("timer4 init/r/n");
  //设置中断入口
  pISR_TIMER4 = (U32)timer4ISP;
  rTCFG0 &=~(0xff<<8);
  rTCFG0 |= prescaler234<<8;
  rTCFG1 &=~(0xf<<16);
  rTCFG1 |= divider4<<16;
  rTCNTB4 = 62500;//16位的 count buffer register
  //rTCNTO4 = //16位的 count observation value for Time 4
  rTCON |= (1<<22)|(1<<21)|(1<<20);//自动装载,启动定时器
  rTCON &= ~0x200000 ;   //定时器4开始工作
  //关于中断
  rSRCPND |= rSRCPND|(0x1<<14);
  rINTPND |= rINTPND|(0x1<<14);
  rINTMSK &= ~(0x1<<14);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值