寄存器描述
0x000 GPT_CTL
默认值:0x00000000 | 通用计数器控制 (General Purpose Timer Control) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:29 | - | - | - |
28 | R | 0x0 | TRG_LEVEL 输入触发引脚电平
|
27:25 | - | - | - |
24 | R | 0x0 | GPT_DONE
注:
仅在 RUN_MODE = 0 时有效。 |
23:20 | R/W | 0x0 | TRG_DB1_DIV 第二级去抖采样除频除频系数为 2^DIV |
19:16 | R/W | 0x0 | TRG_DB1_POINT 第二级去抖采样点数配置为 0 则关闭本级去抖 |
15:12 | R/W | 0x0 | TRG_DB0_POINT 第一级去抖采样点数配置为 0 则关闭本级去抖 |
11:10 | - | - | - |
9:8 | R/W | 0x0 | TRG_MODE 触发模式
注: 每次触发 CNTR_VAL 同时被清为 0,即当
TRG_MODE ≠ 0 时再来触发,会重新计数。 |
7:5 | - | - | - |
4 | R/W | 0x0 | RUN_MODE 运行模式
|
3:2 | R/W | 0x0 | DBG_HALT_SEL 调试暂停触发条件
|
1 | R/W | 0x0 | DBG_HALT_BYPASS 调试暂停关闭
|
0 | R/W | 0x0 | GPT_EN 使能控制
本使能字段仅控制计数器是否正常工作,其操作不会复位本模块的其它配置。 对于执行自动触发 (TRG_MODE = 0) 且使用单次模式 (RUN_MODE = 0) 操作时,必须将此位写 0 后再写 1 才能重启计数。 |
0x004 GPT_CLK
默认值:0x00000000 | 通用计数器时钟 (General Purpose Timer Clock) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:19 | - | - | - |
18:0 | R/W | 0x0 | GPT_CLK_DIV 通用计数器时钟除频系数 配置为 n 则为 n+1。例如,当最大输入时钟为 200M 时,配置为 199,则输出计数频率为 1M。 |
0x008 IRQ_EN
默认值:0x00000000 | 中断使能 (Interrupt Request Enable) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:30 | - | - | - |
29 | R/W | 0x0 | OUT3_CMPB_IRQ_EN
输出引脚
3
达到比较值
B
中断使能
|
28 | R/W | 0x0 | OUT3_CMPA_IRQ_EN
输出引脚
3
达到比较值
A
中断使能
|
27:26 | - | - | - |
25 | R/W | 0x0 | OUT2_CMPB_IRQ_EN
输出引脚
2
达到比较值
B
中断使能
|
24 | R/W | 0x0 | OUT2_CMPA_IRQ_EN
输出引脚
2
达到比较值
A
中断使能
|
23:22 | - | - | - |
21 | R/W | 0x0 | OUT1_CMPB_IRQ_EN
输出引脚
0
达到比较值
B
中断使能
|
20 | R/W | 0x0 | OUT1_CMPA_IRQ_EN
输出引脚
1
达到比较值
A
中断使能
|
19:18 | - | - | - |
17 | R/W | 0 | OUT0_CMPB_IRQ_EN
输出引脚
0
达到比较值
B
中断使能
|
16 | R/W | 0x0 | OUT0_CMPA_IRQ_EN
输出引脚
0
达到比较值
A
中断使能
|
1 | R/W | 0x0 | TRG_IN_IRQ_EN
输入引脚满足触发条件中断使能
|
0 | R/W | 0x0 | CNTR_MAX_IRQ_EN
计数器达到最大计数值中断使能
|
0x00C IRQ_STA
默认值:0x00000000 | 中断状态 (Interrupt Request Status) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:30 | - | - | - |
29 | R/W1C | 0x0 | OUT3_CMPB_IRQ_STA 输出引脚
3
达到比较值
B
中断状态
|
28 | R/W1C | 0x0 | OUT3_CMPA_IRQ_STA 输出引脚
3
达到比较值
A
中断状态
|
27:26 | - | - | - |
25 | R/W1C | 0x0 | OUT2_CMPB_IRQ_STA 输出引脚
2
达到比较值
B
中断状态
|
24 | R/W1C | 0x0 | OUT2_CMPA_IRQ_STA 输出引脚
2
达到比较值
A
中断状态
|
23:22 | - | - | - |
21 | R/W1C | 0x0 | OUT1_CMPB_IRQ_STA 输出引脚
0
达到比较值
B
中断状态
|
20 | R/W1C | 0x0 | OUT1_CMPA_IRQ_STA 输出引脚
1
达到比较值
A
中断状态
|
19:18 | - | - | - |
17 | R/W1C | 0x0 | OUT0_CMPB_IRQ_STA 输出引脚
0
达到比较值
B
中断状态
|
16 | R/W1C | 0x0 | OUT0_CMPA_IRQ_STA 输出引脚
0
达到比较值
A
中断状态
|
15:2 | - | - | - |
1 | R/W1C | 0x0 | TRG_IN_IRQ_STA 输入引脚满足触发条件中断状态
|
0 | R/W1C | 0x0 | CNTR_MAX_IRQ_STA 计数器达到最大计数值中断状态
|
0x010 CNTR_VAL
默认值:0x00000000 | 计数器值 (Counter Value) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x00000000 | CNTR_VAL 计数器值。读该寄存器返回当前计数器的值,写该寄存器更新当前计数器的值。 |
0x014 CNTR_MAX
默认值:0x00000000 | 计数器最大值 (Counter Max) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x00000000 | CNTR_MAX 计数器最大值 当 CNTR_VAL 计数值达到 CNTR_MAX,CNTR_VAL 自动清零。 |
0x01C CNTR_CLR
默认值:0x0 | 计数器清零 (Counter Clear) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:1 | - | - | - |
0 | W1C | 0x0 | CNTR_CLR 计数器清零
不论 GPT 处于何状态,该位写 1,计数器 CNTR_VAL 都会被清零。 |
0x040+N*0x10 (N=0~3) OUTn_CMPA
默认值:0x00000000 | 输出 N 比较 A 寄存器 (Output N Compare A Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x00000000 | CMP_VAL 比较值 |
0x044+N*0x10 (N=0~3) OUTn_CMPB
默认值:0x00000000 | 输出 N 比较 B 寄存器 (Output N Compare B Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x00000000 | CMP_VAL 比较值 |
0x04C+N*0x10 (N=0~3) OUTn_CFG
默认值:0x00000000 | 输出 N 配置寄存器 (Output N Configuration Register) | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:29 | - | - | - |
28 | R | 0x0 | OUTn_LEVEL 输出引脚
N
电平
|
27:14 | - | - | - |
13:12 | R/W | 0x0 | OUTn_CMPB 计数值达到
CMPB
输出电平
|
11:9 | - | - | - |
9:8 | R/W | 0x0 | OUTn_CMPA 计数值达到
CMPA
输出电平
|
7:5 | - | - | - |
4 | R/W | 0x0 | OUTn_INIT 初始输出电平
|
3:1 | - | - | - |
0x0 | R/W | 0x0 | OUTn_EN 输出使能
|
0x0FC GPT_VERSION
默认值:0x00000100 | GPT 版本 | ||
---|---|---|---|
位域 | 类型 | 默认值 | 描述 |
31:0 | R/W | 0x00000100 | VERSION 模块版本,V1.0 |