您的位置:首页 > 游戏 > 游戏 > b2b平台模式_电商专员是做什么的_南京seo排名优化_首页关键词排名优化

b2b平台模式_电商专员是做什么的_南京seo排名优化_首页关键词排名优化

2025/2/13 7:23:03 来源:https://blog.csdn.net/xinzuofang/article/details/145534501  浏览:    关键词:b2b平台模式_电商专员是做什么的_南京seo排名优化_首页关键词排名优化
b2b平台模式_电商专员是做什么的_南京seo排名优化_首页关键词排名优化

e2studio开发RA4M2.11--AGT定时器频率与占空比的设置

  • 概述
  • 视频教学
  • 样品申请
  • 硬件准备
  • 参考程序
  • 源码下载
  • 选择计时器
  • 时钟源
  • PWM(脉冲宽度调制)
  • R_AGT_PeriodSet()函数说明
  • R_AGT_DutyCycleSet()函数说明
  • R_AGT_Reset()函数说明
  • R_AGT_Close() 函数说明
  • 主程序
  • 波形情况

概述

AGT模块是一个高精度定时器,用于计数事件、测量外部输入信号、生成周期性中断,或输出周期性信号/PWM 信号到 GTIOC 引脚。它广泛应用于定时控制、信号测量、PWM 生成等应用,尤其适用于电机控制、LED 调光、PWM 伺服驱动和 ADC 触发等场景。
本文将详细介绍如何上一章基础上通过AGT定时器的API调整频率和占空比,并解释相关的关键概念和设置方法。

最近在瑞萨RA的课程,需要样片的可以加qun申请:925643491。

在这里插入图片描述

视频教学

https://www.bilibili.com/video/BV1jzN2ehEa9/

e2studio开发RA2E1(11)----AGT定时器频率与占空比的设置

样品申请

https://www.wjx.top/vm/rCrkUrz.aspx

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为R7FA4M2AD3CFL#AA0

在这里插入图片描述

参考程序

https://github.com/CoreMaker-lab/RA4M2

https://gitee.com/CoreMaker/RA4M2

源码下载

选择计时器

RA MCU 有两个定时器外设:通用 PWM 定时器 (GPT) 和异步通用定时器 (AGT)。

在这里插入图片描述

时钟源

AGT(异步通用定时器)可以选择不同的时钟源进行运行,具体有三种时钟源可供选择:

  1. PCLKB:系统时钟PCLKB。
  2. LOCO:低速内部时钟LOCO(Low-Speed On-Chip Oscillator)。
  3. Subclock:外部子时钟。

在这里插入图片描述

在这使用的是PCLKB。

在这里插入图片描述

选择 XTAL 12MHz 作为时钟源(Clock Src: XTAL)。PCLKB 时钟的分频器设置为 Div /4,意味着 PCLKB 直接运行在 3MHz。

在这里插入图片描述

PWM(脉冲宽度调制)

脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。脉冲宽度调制是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。
在瑞萨RA系列MCU中有两种定时器,一种是通用PWM定时器GPT,另外一种是异步通用定时器AGT。
频率=主频/period
+占空比=cycle/period

下图中展示的 PWM 输出信号,在周期开始时为高电平,周期结束时为低电平。通过调整占空比(duty cycle)和周期(timer period),可以调节 PWM 信号的行为。
● duty_cycle_counts:表示占空比部分的持续时间。占空比决定了信号高电平的时间比例。
● timer_period_counts:这是一个周期的时间,单位是 PCLKD 计数(即时钟频率的周期数)。

在这里插入图片描述

R_AGT_PeriodSet()函数说明

R_AGT_PeriodSet 函数它的功能是设置AGT(异步通用定时器)的周期值,并在设置时将计数器重置为最大值。该函数实现了定时器周期的更新。

在这里插入图片描述

频率=时钟源/period,若设置频率为10K,则period=3M/10K=300

    err = R_AGT_PeriodSet(&g_timer0_ctrl, 300);//频率assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功

R_AGT_DutyCycleSet()函数说明

R_AGT_DutyCycleSet() 函数用于设置 AGT 定时器的占空比。

在这里插入图片描述

+占空比=cycle/period,若设置GTIOCA+占空比为25%,则cycle= +占空比* period=25%*300=75

   err = R_AGT_DutyCycleSet(&g_timer0_ctrl, 75, AGT_OUTPUT_PIN_AGTOA);//占空比assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);

R_AGT_Reset()函数说明

R_AGT_Reset() 函数用于将 AGT 定时器的计数器重置为周期值减一。

在这里插入图片描述

R_AGT_Close() 函数说明

R_AGT_Close() 函数用于停止 AGT 定时器、禁用中断、禁用输出引脚,并清除内部驱动程序数据。

在这里插入图片描述

关闭定时器GPT。

   err = R_AGT_Close(&g_timer0_ctrl);assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);

主程序

void hal_entry(void)
{/* TODO: add your own code here */fsp_err_t err = FSP_SUCCESS;/* Initializes the module. */err = R_AGT_Open(&g_timer0_ctrl, &g_timer0_cfg);/* Handle any errors. This function should be defined by the user. */assert(FSP_SUCCESS == err);/* Start the timer. */(void) R_AGT_Start(&g_timer0_ctrl);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功err = R_AGT_PeriodSet(&g_timer0_ctrl, 300);//频率assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功err = R_AGT_DutyCycleSet(&g_timer0_ctrl, 75, AGT_OUTPUT_PIN_AGTOA);//占空比assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);err = R_AGT_Close(&g_timer0_ctrl);assert(FSP_SUCCESS == err);R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);while(1){}
#if BSP_TZ_SECURE_BUILD/* Enter non-secure code */R_BSP_NonSecureEnter();
#endif
}

波形情况

最开始AGTOA0输出1k占空比50%的PWM。
AGTIO0输出1k一半的频率,500Hz占空比50%的PWM。

在这里插入图片描述

AGTOA0频率设置成功后频率直接修改为10k,占空比为50%。
AGTIO0输出10k一半的频率,5kHz占空比50%的PWM。

在这里插入图片描述

最后AGTOA0正占空比成功修改为25%。
AGTIO0输出10k一半的频率,5kHz占空比50%的PWM。

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com