4472|3

7671

帖子

2

TA的资源

五彩晶圆(高级)

楼主
 

LPC1500体验+SCT_1、寄存器 [复制链接]

本帖最后由 freebsder 于 2014-8-15 21:59 编辑

1, CONFIG寄存器中的UNIFY位设置timer作为1个32位还是2个16位计时器。在访问其他寄存器之前设置这个位。      

  • UNIFY = 1: Only one register     is used (for operation as one 32-bit counter/timer).
2,REGMODE 寄存器中的REGMODEn位设置每一对Match/Capture寄存器是用做匹配match还是捕获capture。
        REGMODEn= 1: Registers operate as match and reload registers.


寄存器:   


  
CONFIG
  
  
UNIFY:0
  
  
0:16位计时器,1:32位计时器
  
  
0
  
  
  
  
CLKMODE:2:1
  
  
0:系统时钟,1:预分频系统时钟
  
2:SCT输入,3:预分频SCT输入
  
  
00
  
  
  
  
CKSEL:6:3
  
  
0:输入0的上升沿,1:输入0的下降沿
  
2:输入1的上升沿,3:输入1的下降沿
  
......
  
E:          7                   F:          7
  
  
0000
  
  
  
  
NORELAOD_L:7
  
  
写入 1  当match发生时禁止从reload寄存器 reload,软件可随时读写,16位和32位计时器都有效
  
  
0
  
  
  
  
NORELOAD_H:8
  
  
同上,仅在16位时有效
  
  
0
  
  
  
  
INSYNC:16:9
  
  
产生event之前首先与SCT时钟同步(bit  9 = input 0, bit 10 = input 1,..., bit 16 = input 7,CLKMODE为2,3时无效)
  
  
1
  
  
  
  
AUTOLIMIT_L  :17
  
  
写入1时,在match0寄存器上的匹配事件自动成为一个LIMIT条件,而无需明确定义一个event。软件可随时读写。
  
  
0
  
  
  
  
AUTOLIMIT_H  :18
  
  
同上,16位时无效。
  
  
0
  
  
CTRL
  
CONFIG:UNIFY=1时,只有_L的那些位有效
  
STOP或HALT状态下可写入所有位,运行时只有STOP或HALT位可写
  
注:CONFIG:CLKMODE=3时,连续写H或L或两次连续的写之间至少等待12个系统时钟
  
  
DOWN_L  :0
  
  
写入1向下计数。计数limit达到并且BIDIR=1时硬件设置该位为1。计数到0或者向下计数时limit条件满足时硬件设置该位为0。
  
  
0
  
  
  
  
STOP_L:1
  
  
HALT=0时,设置写入1,计数器停止工作但可响应IO。如果Start寄存器中的事件匹配,该位被清除,计数器恢复工作。
  
  
0
  
  
  
  
HALT_L  :2
  
  
写入1计数器停止响应。当HALT=1时,STOP被清除。若要清除HALT但保持计数器响应,则在一条写入指令中设置HALT和STOP。
  
一旦HALT被设置,只能通过软件清除。
  
  
1
  
  
  
  
CLRCTR_L  :3
  
  
写入1清0当前计数器。总是读为0。
  
  
0
  
  
  
  
BIDIR_L  :4
  
  
0:计数器向上计数到limit然后清0,
  
1:计数器向上计数到limit然后向下计数到0或limit条件发生
  
  
0
  
  
  
  
PRE_L:12:5
  
  
SCT时钟预分频因子。计数时钟=SCTClock/(PRE+1)。一旦改变PRE预分频因子,需CLRCTR清0计数器。
  
  
0
  
  
  
  
DOWN_H:16
  
STOP_H:17
  
HALT_H:18
  
CLRCTR_H  :19
  
BIDIR_H:20
  
PRE_H  :28:21
  
  
  
  
  
  
  
  
LIMIT
  
  
LIMMSK_L:15:0
  
LIMMSK_H:31:16
  
  
事件n用作计数limit事件。计数到limit时,计数器清0(单向计数模式)或者改变计数方向(双向计数模式)。如果计数器达到最大值(0xffff/0xffffffff),即便没有在LIMIT寄存器中设置limit条件,也会在下一个时钟沿上清0计数器或者改变计数方向
  
L:event 0 = bit 0, event 1 = bit 1, event   15 = bit 15
  
H:event  0 = bit 16, event 1 = bit 17, event 15 = bit 31
  
  
0
  
  
HALT
  
  
HALTMSK_L:15:0
  HALTMSK_H :31:16
  
  
bit n 写1,事件n发生时设置 CTRL:HALT 对应的位
  
L:event 0 = bit 0,  event 1 = bit 1, event 15 = bit 15
  
H:event 0 = bit 16,  event 1 = bit 17, event 15 = bit 31
  
  
0
  
  
STOP
  
  
STOPMSK_L:15:0
  
STOPMSK_H:31:16
  
  
bit n 写1,事件n发生时设置 CTRL:STOP 对应的位
  
L:event 0 = bit 0,  event 1 = bit 1, event 15 = bit 15
  
H:event 0 = bit 16,  event 1 = bit 17, event 15 = bit 31
  
  
0
  
  
START
  
  
STARTMSK_L:15:0
  
STARTMSK_H:31:16
  
  
bit n 写1,事件n发生时清除 CTRL:STOP 对应的位。(HALT=1时不能产生事件,所以清除HALT位的事情只能由软件写)
  
L:event 0 = bit 0,  event 1 = bit 1, event 15 = bit 15
  
H:event 0 = bit 16,  event 1 = bit 17, event 15 = bit 31
  
  
  
0
  
  
DITHER
  
  
  
  
  
  
  
  
COUNT
  
  
CTR_L:15:0
  
CTR_H:31:16
  
  
软件可随时读,但只能在HALT=1时写。
  
  
  
  
STATE
  
  
STATE_L:4:0
  
STATE_H:20:16
  
  
软件可随时读,但只能在HALT=1时写。事件可配置为在某些状态发生。事件完成以下任务:
  
• 设置或者清除输出信号
  
•  设置计数器 limit, stop, 和 start
  
• 引发中断和DMA请求
  
• 修改state变量
  
state值完全由应用控制。如果应用不需要state,这个值就是缺省值0
  
state变量可对多个周期的计数器以任何需要的操作顺序进行跟踪和控制。state变量逻辑上与SCT配置出的状态机关联。关于state和event的关系参考15.6.26和15.6.27节。
  
所有EVENT控制寄存器(n个)中的  STATELD/STADEV域为state变量设置所有可能值。state变量在计数周期中的变化反映出状态机的状态变迁。
  
  
  
0
  
  
INPUT
  
  
AIN0-7;SIN0-7
  
  
读取输入状态
  
AIN: SCT 时钟采样
  
SIN: INSYNC 选择后的SCT时钟采样
  
  
-
  
  
REGMODE
  
  
REGMOD_L:15:0
  
REGMOD_H:31:16
  
  
有16对Match/Capture寄存器
  
作为match功能时有辅助寄存器来重新装载reload计数值,作为capture功能时也有辅助寄存器来最捕获进行控制。
  
0/1:  match/capture
  
L:register 0 = bit 0, register 1 = bit  1,..., register 15 = bit 15
  
H:register 0 = bit 16, register 1 = bit  17,..., register 15 = bit 31
  
  
0
  
  
OUTPUT
  
  
OUT:9:0
  
  
支持10个输出。当HALT=1时写该寄存器可以对输出进行直接控制。任何时刻可以读。
  
0/1:LOW/HIGH
  
output 0  = bit 0, output 1 = bit 1,..., output 9 = bit 9
  
  
0
  
  
OUTPUTDIRCTRL
  
  
SETCLR0:1:0
  
……
  
SETCLR9:19:18
  
  
在输出n(0-9)上置位或清除。
  
0x0:任何计数器不发生置位和清除
  
0x1:当L计数器或unified计数器开始向下计数时 反转置位和清除 状态。
  
0x2:当H计数器开始向下计数时 反转置位和清除状态。UNIFY=1时不要使用。
  
  
0
  
  
RES
  
  
O0RES:1:0
  
……
  
O9RES  :19:18
  
  
OUTn_SET  和 OUTn_CLR 可同时控制输出状态,即使在同一个state中也可以同时发生。本寄存器用来处理这种矛盾状态。某个状态时需要反转输出,可以将OnRES设置为0x3,同时在Set和Clear寄存器中设置event标志位。
  
0x0   输出不发生改变
  
0x1   输出置位(或根据SETCLR域的设置进行清除).
  
0x2   清除输出(或根据SETCLR域的设置进行设置).
  
0x3   输出反转
  
  
  
0
  
  
DMAREQ0
  
DMAREQ1
  
  
DEV_0:15:0
  
DRL0:30
  
DRQ0:31
  
  
  
  
  
  
EVEN
  
  
IEN:15:0
  
  
在事件n时使能中断。和EVFLAG配合使用。
  
  
0
  
  
EVFLAG
  
  
FLAG:15:0
  
  
记录发生的事件。写 1 清除对应的标志位,如果所有使能中断的标志位都被清0,则消除SCT中断请求。
  
  
0
  
  
CONEN
  
  
NCEN:9:0
  
  
矛盾情况发生时(RES)产生中断
  
output 0 = bit 0,  output 1 = bit1,..., output 9 = bit 9
  
  
0
  
  
CONFLAG
  
  
NCFLAG:9:0
  
BUSERRL:30
  
BUSERRH:32
  
  
  
  
0
  
  
MATCH[0:15]
  
  
MATCHn_L:15:0
  
MATCHn_H:31:16
  
  
匹配寄存器与计数器比较来产生事件。只能在HALT=1时写,任何时可读。计数到match值时清0或向下计数。
   
  
  
  
  
FRACMAT[0:5]
  
  
  
  
  
  
  
  
CAP[0:15]
  
  
CAPn_L:15:0
  
CAPn_H:31:16
  
  
事件发生时,用于读取捕获的计数值
  
  
  
  
MATCHREL[0:15]  
  
  
RELOADn_L  :15:0
  
RELOADn_H  :31:16
  
  
BIDIR=0时,limit  条件发生之后从这里装载MATCH[0:15]寄存器值
  
BIDIR=1时,则在计数器返回到0时装载。
  
  
  
  
FRACMATREL[0:5]  
  
  
  
  
  
  
  
  
CAPCTRL[0:15]  
  
  
CAPCONn_L  
  
CAPCONn_H  
  
  
设置哪些事件用来捕获计数器值存入CAPn_LH寄存器
  
  
  
  
EV[0:15]_STATE  
  
  
STATEMSKn  :15:0
  
  
设置事件在哪些状态下发生,状态在EVn_CTRL中设置。事件n对应的EVn_STATE  中的掩码都为0的话,这个事件就被禁止了。在不需要state但需要event的应用中,这个寄存器写入0x01,state保持缺省0设置。
  
state位m置位,事件event n(0-15)就在这个状态引发。 (m = state number; state 0 = bit 0, state 1= bit 1,..., state 15  = bit 15)
  
  
0
  
  
EV[0:15]_CTRL  
  
  
MATCHSEL:3:0
  
  
选择哪一个Match寄存器的匹配引发该事件。(只有 HEVENT 设置的计数器才会发生match)。
  
  
0
  
  
和 state  掩码一起设置事件 n 发生的条件。
  
  
HEVENT:4
  
  
选择L/H计数器。 UNIFY=1时不要设置这个位。
  
0:MATCHSEL 选择的 L 状态和 L match寄存器
  
1:H
  
  
0
  
  
事件由匹配事件引发,也可由选择的输入输入信号引发(沿或电平)。BIDR=1时也可在计数换向时引发。
  
  
OUTSEL  :5
  
  
选择 Input/output
  
0:选择由IOSEL配置的 input
  
1:选择由IOSEL配置的 output
  
  
0
  
  
每个事件都可以修改STATE值(状态迁移)。
  
  
IOSEL:9:6
  
  
配置引发该事件的输入或输出信号。如果CKMODE=1x的时候不要选择为input。
  
  
0
  
  
如果计数条件满足时配置有多个事件发生,这时状态值的改变只对highest-numbered的那个事件发生作用,而每个事件配置的动作则会全部发生。
  
  
IOCOND:11:10
  
  
配置引发事件n的IO条件。
  
0x0   LOW   低电平
  
0x1   Rise  上升沿
  
0x2   Fall  下降沿
  
0x3   HIGH  高电平
  
  
0
  
  
  
  
COMBMODE:13:12
  
  
配置match和IO条件的使用和组合方式
  
0x0  OR.  match或io条件满足时,事件发生。
  
0x1   MATCH. 仅当match条件满足。
  
0x2  IO.  仅当IO条件满足。
  
0x3  AND.  match和IO条件同时满足。
  
  
0
  
  
  
  
STATELD:14
  
  
配置STATEV修改HEVENT设置的state状态的方式(在该事件是 highest-numbered 事件时发生状态修改)。
  
0  STATEV  的值被加(add)到STATE里面去。(进位被丢弃)
  
1   STATEV 的值直接被装进STATE里面去。  
  
  
0
  
  
  
  
STATEV:19:15
  
  
状态值或状态增量,由STATELD确定。如果STATELD和STATEV都是0,STATE值不发生变化。
  
  
0
  
  
  
  
MATCHMEM:20
  
  
如果该位置1,COMBMODE设置有match条件参与的话,向上计数时只要大于等于match设置的计数条件都引发该事件,向下计数则为小于等于。
  
如果该位置0,match事件只有在等于match值的那个时钟周期里发生。
  
  
-
  
  
  
  
DIRECTION:22:21
  
  
事件的发生与计数方向的关系。仅在BIDIR=1模式有效。
  
0x0   计数方向无关。这个事件的发生无关计数方向。
  
0x1   向上计数。只当向上计数时发生该事件。
  
0x2   向下计数。只当向下计数时发生该事件。
  
  
-
  
  
OUT[0:9]_SET  
  
  
SET:15:0
  
  
n位置1,则事件n设置输出n,或者根据 SETCLRn =0x1或0x2的配置进行清除。
  
event 0  = bit 0, event 1 = bit 1,..., event 15 = bit 15
  
  
  
  
OUT[0:9]_CLR  
  
  
CLR:15:0
  
  
n位置1,则事件n清除输出n,或者根据 SETCLRn =0x1或0x2的配置进行设置。
  
event 0  = bit 0, event 1 = bit 1,..., event 15 = bit 15
  
  
  

此帖出自NXP MCU论坛

最新回复

如果使用这个功能,这些翻译内容是不够的,也不清楚!  详情 回复 发表于 2016-6-8 11:49
点赞 关注(1)
个人签名

默认摸鱼,再摸鱼。2022、9、28

 

回复
举报

659

帖子

1

TA的资源

纯净的硅(中级)

沙发
 
这是。。。。。。。。翻译User Manual的节奏?
此帖出自NXP MCU论坛
 
 
 

回复

25

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
对初学者有用,翻译的很明白
此帖出自NXP MCU论坛
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(初级)

4
 
如果使用这个功能,这些翻译内容是不够的,也不清楚!
此帖出自NXP MCU论坛
 
个人签名不做电源了,做ARM
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表