我们以KEA64系列来学习周期中断定时器PIT, 其中KEA64系列包括:
SKEAZN16AMLC®
SKEAZN32AMLC®
SKEAZN64AMLC®
SKEAZN32AMLH®
SKEAZN64AMLH®
PIT框图
注: KEA64有1个PIT, 里面又有2个独立的通道PIT0和PIT1;我的理解就是两个独立的定时器。
PIT寄存器
这里不展开来说明寄存器,具体地还是要看相应的手册。
PIT时序
PIT用法之一:查询标志位
以PIT0为例
基本步骤
- 初始化时钟(core clock和bus clock)
- 初始化PIT
- 使能 bus clock
- 启动 PIT
- 加载PIT_LDVAL0或PIT_LDVAL1初始值
- 启动PIT定时器
- 主循环
- 查询PIT定时器中断标志位
- 清除中断标志位
定时1s例程
通过查询方式,使LED每隔1s周期地闪烁
#include "derivative.h" /* include peripheral declarations SSKEAZN64M2 */
#define PTD2 26 /* Port PTD2, bit 26: output to blue LED */
void Clk_Init(void);
void init_PIT(void);
int main(void)
{
Clk_Init();
init_PIT();
GPIOA_PDDR |= 1<<PTD2; /* Port D2: Data Direction= output */
GPIOA_PIDR &= 1<<PTD2; /* Port D2: Input Disable= 1 (default) */
for(;;)
{
while (0 == (PIT_TFLG0 & PIT_TFLG_TIF_MASK)) {