回答

收藏

[原创] 【一网打尽】rene个人翻译Lesson 4 OK04

Raspberry Pi Raspberry Pi 2187 人阅读 | 0 人回复 | 2015-03-30

4课ok04
本课的教学建立在ok04 ok03如何使用定时器闪光的‘好’或‘行为’LED在精确的时间间隔。这是假设你的代码为3课:ok03操作系统为基础的。

1一个新的设备
定时器是PI可以保持时间的唯一方法。大多数计算机都有一个电池供电的时钟保持时间时。
到目前为止,我们只看了一张在Raspberry Pi的硬件,即GPIO控制器。我只是告诉你做什么,和它的发生。现在我们来看看计时器,我要让你了解它是如何工作的。
就像GPIO控制器,定时器有一个地址。在这种情况下,定时器是基于2000300016。阅读手册,我们发现如下表:
表1.1 GPIO控制寄存器[ TD ]

AddressSize / BytesNameDescriptionRead or Write
200030004Control / StatusRegister used to control and clear timer channel comparator matches.RW
200030048CounterA counter that increments at 1MHz.R
2000300C4Compare 00th Comparison register.RW
200030104Compare 11st Comparison register.RW
200030144Compare 22nd Comparison register.RW
200030184Compare 33rd Comparison register.RW

这个表告诉我们很多,但在不同的战场手册描述告诉我们最。手册说明计时器根本就递增计数器的值1每1微秒。每次都这样,比较低32位(4字节)的计数器的值与4比较寄存器,如果匹配的话,它更新控制/状态反映哪些匹配。
有关更多信息比特,字节,位域的数据大小,并扩大下面的框。
我们的目标是实现一个功能,我们可以调用的时间量作为输入,将等待时间然后回来。想想我们如何能做到这一点,给予我们。
我看见有两个选项:
从计数器读取值,然后保持分支回相同的代码,直到计数器等待超过它的时间。
从计数器读取值,添加时间等,存储在一个比较寄存器,然后把分支回相同的代码,直到控制/状态寄存器更新。
这类问题称为并发问题,而无法解决。
这些策略都还不错,但在本教程中,我们将只实现第一个。原因是因为比较寄存器是更容易出错,因为它需要增加等待时间和存储在比较寄存器时,计数器会增加,所以它不能匹配。这可能如果请求1微秒的等待导致很长的意外延误(或更糟的是,一个0微秒等等)。
2实施
大型操作系统的正常使用等功能为契机,执行后台任务。
我将在很大程度上把创造理想等方法给你挑战。我建议你把文件“systemtimer定时器相关的所有代码。(希望是显而易见的原因)。这种方法的复杂的部分,就是计数器是一个8字节的值,但每个寄存器只能容纳4字节。因此,计数器的值将跨越两个寄存器。
下面的代码块的例子。
LDRD R0,R1,R2 # [ 4 ],
LDRD reglow,reghigh,【SRC,#瓦尔]装载8字节的数量到瓦尔srcplus reglowand reghigh地址。
指令你可以找到有用的是上面的LDRD指令。它装载的8字节在2个寄存器存储器。在这种情况下,8字节的内存从地址在R2将被复制到R0和R1。什么是稍微复杂的这种安排是R1实际上拥有最高4个字节。换句话说,如果计数器有999999999999值10 = 11101000110101001010010100001111111111112,R1将包含111010002和R0包含110101001010010100001111111111112。
最合理的方式来实现这个会计算当前计数器值和从方法开始时之间的差异,然后比较这与时间的请求数量等。方便的,除非你希望支持的等待时间是8个字节的值,R1在上面的例子中可以被丢弃,只有低4字节计数器需要使用。
当等待你应该要用更高的比较不平等的比较,如果你想等待时间的方法开始和结束要如数请求的时间之间的差距,你可能错过的价值,和永远等待。
如果你不了解如何编码等功能,扩大下面的框内导。
3另一个闪烁的光
一旦你有你所相信的是一个工作等功能,改变主要的使用它。改变你到处等待设置R0值较大的数(记得是在微秒)然后测试它在Raspberry Pi。如果不正常请看我们的疑难解答页。
一旦工作,恭喜你已经掌握了另一个装置,通过它,时间本身。在下一个和最后一课的OK系列,5节:ok05我们将使用所有我们已经学会了在LED闪光模式。


分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条