注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
dmzdmz666666的个人空间 https://home.eeworld.com.cn/space-uid-1103352.html [收藏] [复制] [分享] [RSS]
日志

【雅特力AT32A403A 车规MCU开发板】+定时器输出不同占空比带死区的互补方波

已有 1141 次阅读2024-2-12 22:25 |个人分类:嵌入式

第十篇:定时器输出不同占空比带死区的互补方波

这篇文章将来测评AT32A403A的硬件定时器输出方波

AT32A403A有17个定时器,包括2个高级定时器、10个通用定时器、2个基本定时器、2个WDT定时器和1个系统滴答定时器。这里我将用AT32A403A的高级定时器定时器1输出方波。

定时器1支持输出7个通道的PWM,其中3组可为互补通道,这次测试就用到这3组。

首先,在hardware文件夹中新建TIMER1.cc等C文件及其对应的h头文件。

第二步,通过WorkBench配置AT32A403A的硬件定时器,选择TIMER1,GPIO的话选择PE脚,以免跟PA9、PA10冲突

 

通道模式选择通道X和通道X互补输出,通道4关闭。

 

周期值选择9999,这样就能输出20KHz的方波

 

这里的周期缓冲没有使能,开启后在溢出事件发生后才将寄存器里的数据更新

 

接下来设置通道的输出模式,这里选择PWM模式A,其他模式可查看参考手册。设置的占空比为正占空比,而通道数据是用来调整占空比的。其他通道类似。

 

最后来设置一个死区时间。死区时间能设置成0-255,具体这个数值不知道代表多少时间,我这里先设置成10,看看实际效果。

 

最后导出代码,记得要使能PE GPIO的时钟,可以看到输出的波形是正常,分别是第一通道、第二通道、第三通道,占空比分别为10%、40%、80%。至于为什么测量到的占空比不是设置的值,那是因为加入了死区。死区时间大致为83ns。至此定时器测试完毕。

 

 

 

本文来自论坛,点击查看完整帖子内容。

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章