Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1828657
  • 博文数量: 286
  • 博客积分: 3713
  • 博客等级: 少校
  • 技术积分: 2275
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 09:47
个人简介

http://blog.chinaunix.net/uid/16979052.html

文章分类

全部博文(286)

文章存档

2018年(1)

2017年(16)

2016年(9)

2015年(17)

2014年(15)

2013年(112)

2012年(116)

分类: LINUX

2012-07-02 10:22:46

#include

volatile uint32_t timer_ticks = 0;
int timer_intr(int intr_no, void *arg, struct pt_regs *regs)
{
timer_ticks++;
return 0;
}
static void settimer(int hz)
{
/*设置定时器多长时间发送一个中断给cpu*/
uint32_t divisor = 1193180/hz;
/*二进制,工作模式为3,先写LSB再写MSB*/
outb(0x43, 0x36);
outb(0x40, divisor&0xff);
outb(0x40, divisor>>8);
}
static void timer_init()
{
KPRINTF("timer_init\n");
irq_attach(IRQ2INTR(IRQ_TIMER), timer_intr, NULL, "TIMER_INTERRUPT");
settimer(200);
enable_irq(IRQ_TIMER);
}
INITFUNC(timer_init, INIT_TIMER);

阅读(1872) | 评论(0) | 转发(0) |
0

上一篇:kernel/sched.c

下一篇:chap_crack/main.c

给主人留下些什么吧!~~