学习KEA之周期中断定时器PIT

本文深入解析了KEA64系列微控制器中的周期中断定时器PIT,包括其结构、寄存器配置、时序及两种使用方法:查询标志位和中断服务程序法。详细介绍了如何通过PIT实现精确的1秒定时,适用于初学者和工程师快速掌握PIT的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们以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)) {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值