orange's学习--第六章:n设置10ms延迟(就是设置时钟中断时间,根据这个时间设置延迟时间)

  我们一直在讲时钟中断,但好像到目前为止,我们还没考虑过它为什么发生,以及由谁来产生。 中断当然不是凭空产生的。实际上它是由一个被称做PIT (Programmable  Interval Timer)的芯片来触发的。在IBM XT中,这个芯片用的是Intel  8253,在AT以及以后换成了Intel  8254。8254功能更强一些,但对于增强的功能,我们并不一定涉及,在下面的陈述中,我们只称呼它8253。 

/* 8253/8254 PIT (Programmable Interval Timer) */
#define TIMER0         0x40 /* I/O port for timer channel 0 */
#define TIMER_MODE     0x43 /* I/O port for timer mode control */
#define RATE_GENERATOR 0x34 /* 00-11-010-0 :
                 * Counter0 - LSB then MSB - rate generator - binary
                 */
#define TIMER_FREQ     1193182L  /* clock frequency for timer in PC and AT */
#define HZ                        100           /* clock freq (software settable on IBM-PC) */

        /* 初始化 8253 PIT */
        out_byte(TIMER_MODE, RATE_GENERATOR);
        out_byte(TIMER0, (u8) (TIMER_FREQ/HZ) );
        out_byte(TIMER0, (u8) ((TIMER_FREQ/HZ) >> 8));

/*=======================================================*
                              milli_delay
 *=======================================================*/
PUBLIC void milli_delay(int milli_sec)
{
        int t = get_ticks();

        while(((get_ticks() - t) * 1000 / HZ) < milli_sec) {}
}
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值