找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

EPWM_AccumulatorINT_TriggerPDMA例程的疑问

[复制链接]
楼主
chrishu 发表于 2023-11-2 10:19:49 | 显示全部楼层
本帖最后由 chrishu 于 2023-11-2 16:28 编辑

累加器计数到设定值,可以产生中断、停止输出、触发PDMA。
EPWM_EnableAcc(EPWM1, 0, 50, EPWM_IFA_ZERO_POINT);  //第三个参数设置累加器的计数个数
EPWM_EnableAccInt(EPWM1, 0);//使能CH0的累计器中断
EPWM_EnableAccStopMode(EPWM1, 0);//CH0 累加中断产生后停止
EPWM_EnableAccPDMA(EPWM1, 0);//使能CH0累加器触发PDMA(内存==>寄存器)
下面这段代码实现循环延时一段时间发送10个脉冲,可以参考一下。



回复 支持 反对

使用道具 举报

沙发
chrishu 发表于 2023-11-2 16:39:06 | 显示全部楼层
本帖最后由 chrishu 于 2023-11-2 16:40 编辑
游客 121.29.111.x 发表于 2023-11-2 11:30
我的需求是,仅仅需要控制发送预设频率以及预设脉冲个数(小于2^16);是不是不用开启PDMA,也可以?甚至不 ...

之前有说过累加器设定的计数时间到了后,可以产生中断、停止PWM、还可以触发PDMA搬运数据。
至于你希望用到哪些功能就使能哪些就好了。之前的回复里有给出使能每一种功能调用什么函数。

如果只需要累加停止功能可以参考例程EPWM_AccumulatorStopMode。前面回复的截图图片里也有给出循环延时一段时间发送10个脉冲的参考。

回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU