【裸机开发】GPT 定时器(二) —— GPT定时中断

文章介绍了如何通过GPT1定时器初始化和设置中断服务函数,以实现每500毫秒切换一次LED灯状态。配置包括定时器的复位、计数器初始值、时钟源选择、工作模式设定、分频数设置以及中断比较值和使能。在中断服务函数中,根据GPT1_SR判断中断源并切换LED状态。

本文介绍的是使用 GPT1 定时器实现定时中断,达到和 EPIT 定时器一样的效果,每隔 500ms 切换LED灯的状态。


目录

一、GPT1 定时器初始化

二、GPT1 中断服务函数


一、GPT1 定时器初始化

因为使用GPT的定时中断来切换LED灯的状态,所以这里的配置主要包含:定时器配置、中断配置

  •  定时器配置
    • 设置复位,并等待复位结束(关于复位的详细内容,参考上一篇:GPT 寄存器解析
    • 定时器配置(选择计数器初始值、选择时钟源、选择工作模式)
    • 设置分频数
  • 中断配置
    • 设置比较值(当计数器的值 == 比较值时,触发中断)
    • 中断使能(GIC 使能、GPT 使能、注册中断服务函数)
/*
 * @description	: gpt 定时初始化
 * @param 		: 定时间隔,单位: ms
 * @return 		: 无
 */
void delay_init(unsigned int interval)
{
	// 设置复位(设为复位状态后,除了bit 0、1、2、3、5外,其他位都会被重置为默认值)
    GPT1_CR = 0;
	GPT1_CR |= (1 << 15);
	while((GPT1_CR >> 15) & 0x01);		// 等待复位完成
 
    /* 
     * 配置GPT定时器
     * bit 1: 1 设置计数器初始值问为 0
     * bit 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值