操作系统实验--30天自制操作系统第12,13天实验日志

一、 实验主要内容
定时器(1)
1、 内容1:使用定时器
定时器十分重要,但其原理较为简单,定时器的原理是每隔一段时间就发送一个中断信号给CPU,我们就可以每隔一定时间进行一次某种处理。
我们可以设定PIT,让定时器每隔多少秒就产生一个中断。因为PIT连接着IRQ的0号。
在这里插入图片描述

我们将周期设为11392(0x2e9c),中断频率是100Hz,即每10ms发生一次中断。
在这里插入图片描述

我们编写IRQ0发生时所调用的中断处理程序,其与键盘的中断处理程序一样,只是中断号不一样。
将这个中断处理程序加入到IDT

在这里插入图片描述

2、 内容2:计量时间
既然我们已经编写了定时器中断处理程序,让我们添加一些功能实现。
对PIT初始化时,将计数变量设置为0.
在这里插入图片描述

每次发生定时器中断,计数变量就递增1.那么1秒钟就会增加100,因为中断频率是100Hz
在这里插入图片描述

我们将数值打印出来
在这里插入图片描述

运行结果:
在这里插入图片描述

3、 内容3:超时功能
超时功能就是我们用于对执行任务的一个计时,经过我们一段设定的时间之后来执行某个任务。
设置变量timeout,表示离超时还有多少时间,到达0的时候,我们往FIFOh缓冲区发送数据。
在这里插入图片描述

settimer函数,如果还没设定完成就有中断进来会产生混乱,需要先禁止中断,等待设置完成。
在这里插入图片描述

将timeout初始设置为1000(10秒钟),10秒钟后向timerfifo写入“1”这个数据
在这里插入图片描述

当timerfifo接收到数据时,就会在屏幕上显示”10[sec]”,运行结果

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值