130 likes | 263 Views
高速计数器指令. 设计者 :辛凤蕊 学校 :天津市电子信息高级技术学校. 高速计数指令. 功能指令. 高数计数指令. 一、高速计数指令. 1 .高速计数介绍. 1 )数量 及编号 CPU 221 和 CPU 222 支持 4 台高速计数器 (HSC0 、 HSC3 、 HSC4 、 HSC5) CPU 221 和 CPU 222 不支持 HSC1 和 HSC2 CPU 224 、 CPU224XP 、 CPU 226 支持 6 台高速计数器 (HSC0 至 HSC5). 2 )中断事件类型 中断事件类型共 3 类
E N D
高速计数器指令 设计者:辛凤蕊 学校:天津市电子信息高级技术学校
高速计数指令 功能指令
高数计数指令 一、高速计数指令 1.高速计数介绍 1)数量及编号 CPU 221和CPU 222支持4台高速计数器 (HSC0、HSC3、HSC4、HSC5) CPU 221和CPU 222不支持HSC1和HSC2 CPU 224、CPU224XP、CPU 226支持6台高速计数器 (HSC0至HSC5) 2)中断事件类型 中断事件类型共3类 当前值等于预设值中断、输入方向改变中断、外部复位中断 中断优先级
3)工作模式机输入点 四种基本类型共12种工作模式 四种基本类型是: (1)带内部方向控制的单向计数器, (2)带外部方向控制的单向计数器, (3)带两个时钟输入的双向计数器, (4)A/B相正交计数器。
工作模式与输入点的关系如下: 注意:高速计数器工作模式指定的输入点只能被高速计数器使用。
模式0、1和2操作举例(带内部方向控制的单向计数器)模式0、1和2操作举例(带内部方向控制的单向计数器)
模式3、4和5操作举例(带外部方向控制的单向计数器)模式3、4和5操作举例(带外部方向控制的单向计数器)
上下时钟输入的上升沿间隔0.3微秒,高速计数器可能认为这些事件同时发生。如果发生这种情况,当前值不改变,而且计数方向不改变。只要上下时钟输入的上升沿之间的间隔大于该时段,高速计数器就能够单独捕获每个事件。在两种情况下,均不生成错误,而且计数器保持当前计数值。上下时钟输入的上升沿间隔0.3微秒,高速计数器可能认为这些事件同时发生。如果发生这种情况,当前值不改变,而且计数方向不改变。只要上下时钟输入的上升沿之间的间隔大于该时段,高速计数器就能够单独捕获每个事件。在两种情况下,均不生成错误,而且计数器保持当前计数值。
二、高速计数指令 1.高速计数指令 高速计数器定义指令(HDEF),图所示为指定的高速计数器(HSC为编号)设置一种工作模式(MODE)。每个高速计数器只能用一条HDEF指令。高速计数器指令(HSC)用于启动编号为N的高速计数器。HSC与MODE为字节型常数,N为字型常数。
三、高速计数器的使用 1.状态字节:SM××6 2.控制字节: SM××7 3.当前值: SM××8 4.预置值:SM××2
欲存取高速计数器的计数值,您需要利用内存类型(HC)和计数器号码(例如HC0)指定高速计数器的地址。如下所示,高速计数器的当前值是只读数值,只能作为双字(32位)编址。欲存取高速计数器的计数值,您需要利用内存类型(HC)和计数器号码(例如HC0)指定高速计数器的地址。如下所示,高速计数器的当前值是只读数值,只能作为双字(32位)编址。 格式:HC[高速计数器号码],以HC2为例。 使用高速计数器及工作模式步骤 (1)选择高速计数器 (2)设置控制字节 (3)定义高速计数器 (4)给定预置值 (5)设置中断事件并全局开放中断 (6)启动高速计数器