当前位置: 首页 > web >正文

BAT32G113 发送互补PWM

方式1: 利用定时器4发送

TM40_PWM_1Period_2Duty(64, 32, 32);	
void TM40_PWM_1Period_2Duty(uint16_t period, uint16_t duty1, uint16_t duty2)
{CGC->PER0 |= CGC_PER0_TM40EN_Msk;    /* enables input clock supply */TM40->TPS0 = _0000_TM4_CKM3_fCLK_8 | _0000_TM4_CKM2_fCLK_1 | _0000_TM4_CKM1_fCLK_0 | _0000_TM4_CKM0_fCLK_0; /* master channel */TM40->TMR00 = _8000_TM4_CLOCK_SELECT_CKM1 | _0000_TM4_TRIGGER_SOFTWARE | _0001_TM4_MODE_PWM_MASTER;TM40->TDR00 = period - 1;TM40->TO0  &= ~_0001_TM4_CH0_OUTPUT_VALUE_1;TM40->TOE0 &= ~_0001_TM4_CH0_OUTPUT_ENABLE;/* slave channel */TM40->TMR01 = _8000_TM4_CLOCK_SELECT_CKM1 | _0400_TM4_TRIGGER_MASTER_INT | _0009_TM4_MODE_PWM_SLAVE;TM40->TDR01 = duty1;TM40->TOM0 |=  _0002_TM4_CH1_SLAVE_OUTPUT;       /* slave channel output mode */TM40->TOL0 &= ~_0002_TM4_CH1_OUTPUT_LEVEL_L;     /* positive logic output (active-high) */	TM40->TO0  &= ~_0002_TM4_CH1_OUTPUT_VALUE_1;     /* TOmp default output level */TM40->TOE0 |=  _0002_TM4_CH1_OUTPUT_ENABLE;      /* Enable TOmp output by counting operation */TO01_PORT_SETTING();/* slave channel */TM40->TMR02 = _8000_TM4_CLOCK_SELECT_CKM1 | _0400_TM4_TRIGGER_MASTER_INT | _0009_TM4_MODE_PWM_SLAVE;TM40->TDR02 = duty2;TM40->TOM0 |=  _0004_TM4_CH2_SLAVE_OUTPUT;       /* slave channel output mode *///TM40->TOL0 &= ~_0004_TM4_CH2_OUTPUT_LEVEL_L;     /* positive logic output (active-high) *///修改此处,设置输出电压极性不同;TM40->TOL0 |= ~_0004_TM4_CH2_OUTPUT_LEVEL_L;     /* positive logic output (active-high) */TM40->TO0  &= ~_0004_TM4_CH2_OUTPUT_VALUE_1;     /* TOmp default output level */TM40->TOE0 |=  _0004_TM4_CH2_OUTPUT_ENABLE;      /* Enable TOmp output by counting operation */TO02_PORT_SETTING();/* Start specify channel */TM40_Channel_Start(TM4_CHANNEL_0 | TM4_CHANNEL_1 | TM4_CHANNEL_2);
}

方式二:利用定时器B产生

//TMB0_DoublePulseOutput(tmb_clock_t clk, uint16_t period, uint16_t skew)TMB0_DoublePulseOutput(TMB_CLOCK_FCLK, 64, 21);delayMS(100);

其中: skew = period / 2 - 1;

http://www.xdnf.cn/news/8942.html

相关文章:

  • 【位运算】比特位计数
  • 海外仓系统 选浩方WMS一款体验更好的海外仓管理系统
  • 2025年—最新ComfyUI_修复面部与手部
  • 《爱的艺术》
  • 升级Win11后VMware虚拟机屏幕调整问题
  • Redis分布式锁浅谈
  • 打羽毛球tips
  • leetcode2025. 分割数组的最多方案数-hard
  • ESP32-S3 学习笔记(2)-屏幕驱动和lvgl移植
  • 【MySQL系列】数据库死锁问题
  • TDK PC95铁氧体隔磁片的技术要求
  • uniapp中懒加载图片组件的封装与应用
  • 【Qt】QCustomPlot相关
  • 网络段、主机段、子网掩码
  • Python 学习日记 day26
  • 蓝桥杯178 全球变暖
  • 【深度解读】三一重工的数字化转型(下篇2)
  • 大数据学习(118)-SQL面试问题总结
  • @Valid和@Vlidated的区别
  • Windows安装Docker Desktop开启 Kubenetes制作并部署本地镜像
  • Java 装饰器模式(Decorator)详解​
  • AI练习:指纹
  • [C语言实战]C语言文件操作实战:打造高效日志系统(六)
  • RMAN恢复报错RMAN-06555及其解决方案
  • STM32F103_Bootloader程序开发02 - Bootloader程序架构与STM32F103ZET6的Flash内存规划
  • idea和cursor快速切换
  • 【Linux】定时任务 Crontab 与时间同步服务器
  • 基于多头注意力时间卷积网络(MATCN)的虚拟电厂短期功率预测模型
  • 『uniapp』自己实现手动图片列表滑动 + 图片手势缩放+ 图片点击缩放(详细图文注释)
  • 分布式消息中间件设计与实现