在这里,我们将看到8254可编程间隔定时器芯片的控制字和操作模式。
在讨论其工作模式和控制字属性之前,我们应该了解该芯片的一些重要事实。
芯片加电时,状态不确定。当时未定义模式,计数值和输出。
每个计数器在使用前都必须编程。我们不需要对一些未使用的计数器进行编程。
计数器是通过编写控制字和一个初始计数来编程的。
计数器的结构是这样的-
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
SC1 |
0SC0 | RW1 |
RW2 |
M2 |
M1 |
M0 |
BCD /二进制 |
我们可以通过SC1和SC0选择计数器。
SC1 |
SC0 | Selection |
---|---|---|
0 |
0 |
Counter 0 |
0 |
1 |
Counter 1 |
1 |
0 |
Counter 2 |
1 |
1 |
读取返回状态 |
RW1和RW2的值用于表示读取和写入操作。
RW1 |
RW0 |
Selection |
---|---|---|
0 |
0 |
计数器锁存命令 |
0 |
1 |
读或写低字节 |
1 |
0 |
读取或写入高位字节 |
1 |
1 |
读或写低字节,后跟高字节 |
M2,M1和M0的三位用于确定编程模式。这些如下所示:
M2 |
M1 |
M0 |
操作模式 |
---|---|---|---|
0 |
0 |
0 |
Mode 0 |
0 |
0 |
1 |
Mode 1 |
X |
1 |
0 |
Mode 2 |
X |
1 |
1 |
Mode 3 |
1 |
0 |
0 |
Mode 4 |
1 |
0 |
1 |
Mode 5 |
控制字的最后一位(LSb)用于选择计数是二进制还是BCD。如果该值为0,它将充当二进制计数器,否则将充当BCD计数器。
现在让我们看看8254芯片的这六个工作模式:
模式 |
类型 |
描述 |
---|---|---|
Mode 0 |
中断和终端计数 |
这用于事件计数。写入控制字后,OUT首先为低电平。它会一直保持低电平,直到计数器达到0,然后在每个时钟周期后递减1。 然后,OUT变为高电平,并保持高电平,直到有一个新计数或将新的模式0控制字写入计数器为止。GATE = 1表示启用计数,0表示禁用计数。 |
Mode 1 |
硬件可再触发一次 |
OUT首先将为高电平,在触发一个脉冲开始后,时钟脉冲将为低电平。它将保持为0,直到计数器达到0。 |
Mode 2 |
速率发生器 |
最初,OUT为低电平。启用计数后,它会变高。此过程会定期重复。此模式用作分频器。 |
Mode 3 |
方波发生器 |
如果GATE为1,则启用计数,否则禁用。此模式用于生成方波。时间段等于计数。如果计数为偶数,则波形的接通时间为count / 2。 否则,开启时间为(count + 1)/ 2,关闭时间为(count-1)/ 2。 |
Mode 4 |
软件触发的频闪 |
如果GATE为1,则启用计数,否则禁用。当计数处于最后阶段时,初始OUT值较高,而较低。再次为后续时钟脉冲重新加载计数。 |
Mode 5 |
硬件触发频闪 |
最初,OUT为高。计数由门的上升沿触发。当初始计数到期时,OUT会在一个时钟脉冲内变为低电平,然后再次变为高电平。 写入控制字和初始计数后,直到一次触发后的时钟脉冲才加载计数器。 |
空操作 空操作是指系统在找不到指定的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。 下面的例子用空操作功能实现了一个城市切换的功能。 我们只需要给City控制器类定义一个_empty (空操作)方法: <?php namespace app\index\controller; class City { public fu
绑定微信支付 通过知晓云使用微信支付功能,需要先在支付模块中绑定微信支付 1.注册小程序开发者账号 2.完成微信认证(个人号不支持微信认证):【登录小程序】—>【设置】—>【微信认证详情】 3.申请微信支付:微信认证后,可以在小程序后台,点击微信支付菜单项,选择申请微信支付。申请完成后,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱 4.在知晓云中绑定微信支付:绑定微信支付需要你的商户
对于我们的web应用程序,我需要保存获取和显示的项的顺序,这取决于视图--或者准确地说--生成视图的控制器和操作(当然还有用户id,但这不是这里的重点)。 我认为,与其在每个控制器操作中自己给出一个标识符(以便使用它对DB输出进行视图依赖的排序),不如从控制器和操作方法中自动创建这个标识符更安全、更容易。 如何从控制器的操作方法中获取控制器和操作的名称?还是我需要反思?
在TYPO3 v9之前,可以将相应控制器操作的控制器和流体模板放入如下子文件夹: 类/控制器/产品/CarController.php ext_localconf.php 由于控制器名称“Product\Cars”,相对流体模板路径将解析为: 在TYPO3 v10中,这不再有效。我想这是因为现在你应该给出一个完全限定的控制器名称,如下所示: ext_localconf.php 现在,TYPO3仅尝
简介 ACL, 又称访问控制列表,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对对象的权限。 很多类型的系统都实现了 ACL, 例如: 文件系统 ACLs 参考 Unix 文件系统权限 网络 ACLs 路由器、交换机访问 SQL 实现 就 Unix 文件系统而言, ACL 指的是文件的操作权限列表。