华大单片机HC32L130/HC32L136PWM配置
标题可编程计数阵列PCA
PCA(可编程计数器阵列 Programmable Counter Array)支持最多 5 个 16 位的捕获/比较
模块。该定时/计数器可用作为一个通用的时钟计数/事件计数器的捕获/比较功能。PCA
的每个模块都可以进行独立编程,以提供输入捕捉,输出比较或脉冲宽度调制。另外
模块 4 有额外的看门狗定时器模式。
16 位重载 位重载 计数模式即PWM模式
计数器计数到与寄存器 CARR 的值相同时溢出后计数器的值变为 0,继续开始向上计
数,可用于 PCA 捕获模式,16 位 PWM 模式。
设置流程
- 设置 PCA_EPWM 的 EPMW 为 1
- 设置 PCA_CARR 设置计数周期值
- 设置 PCA_CMOD.CPS 选择计数时钟
- 根据需要设置 PCA_CMOD.CFIE 设置计数溢出中断使能
- 时钟 PCA_CCON.CR 启动 PCA 计数器
PCA计数阵列PWM代码
void PCA_PWM_Config(void)
{stc_pca_config_t stcConfig;stc_pca_capmodconfig_t stcModConfig;stc_gpio_cfg_t stcPCA0Port;uint16_t u16ArrData = 120; //PWM周期相关uint16_t u16CmpData = 60; //PWM占空比相关DDL_ZERO_STRUCT(stcConfig);DDL_ZERO_STRUCT(stcModConfig);DDL_ZERO_STRUCT(stcPCA0Port);//PCA、GPIO外设时钟开启Sysctrl_SetPeripheralGate(SysctrlPeripheralPca, TRUE);Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);//GPIO CFG//PA06设置为PCA_CH0//Gpio_ClrAnalogMode(GpioPortA, GpioPin6);stcPCA0Port.enDrv = GpioDrvH;stcPCA0Port.enDir = GpioDirOut;Gpio_Init(PIN_PWM_Tune, &stcPCA0Port);Gpio_SetAfMode(PIN_PWM_Tune, GpioAf2);stcConfig.enCIDL = IdleGoOn; //休眠模式PCA工作 stcConfig.enWDTE = PCAWDTDisable; //wdt功能关闭stcConfig.enCPS = PCAPCLKDiv2; //PCLK/2stcConfig.pfnPcaCb = PcaInt; //中断函数入口stcModConfig.enECOM = ECOMEnable; //比较器功能允许stcModConfig.enCAPP = CAPPDisable; //上升沿捕获禁止stcModConfig.enCAPN = CAPNDisable; //下降沿捕获禁止stcModConfig.enMAT = MATEnable; //允许匹配stcModConfig.enTOG = TOGEnable; //允许翻转stcModConfig.en8bitPWM = PCA8bitPWMDisable; //禁止8位PWM功能Pca_Enable16bitPWM(); //增强PWM功能使能if (Ok != Pca_Init(&stcConfig)){// return Error;}if (Ok != Pca_CapModConfig(Module0, &stcModConfig)){// return Error;}Pca_CARRSet(u16ArrData); //周期重载值设置Pca_CmpData16Set(Module0, u16CmpData); //(比较值)比较捕获寄存器设置Pca_Run();
}
以上是pwm的GPIO配置跟PWM模式配置
/******************************************************************************** Function implementation - global ('extern') and local ('static')******************************************************************************/
/******************************************************************************** Pca中断服务程序******************************************************************************/static volatile uint32_t u32PcaTestFlag = 0;
void PcaInt(void)
{if (TRUE == Pca_GetCntIntFlag()){Pca_ClearCntIntFlag();u32PcaTestFlag |= 0x20;}if (TRUE == Pca_GetIntFlag(Module0)){Pca_ClearIntFlag(Module0);u32PcaTestFlag |= 0x01;}if (TRUE == Pca_GetIntFlag(Module1)){Pca_ClearIntFlag(Module1);u32PcaTestFlag |= 0x02;}if (TRUE == Pca_GetIntFlag(Module2)){Pca_ClearIntFlag(Module2);u32PcaTestFlag |= 0x04;}if (TRUE == Pca_GetIntFlag(Module3)){Pca_ClearIntFlag(Module3);u32PcaTestFlag |= 0x08;}if (TRUE == Pca_GetIntFlag(Module4)){Pca_ClearIntFlag(Module4);u32PcaTestFlag |= 0x10;}
}
以上是中断函数清理标志位。
主函数里面初始化PCA_PWM_Config();
然后根据Pca_CmpData16Set(Module0, u16CmpData);更改占空比,然后就可以输出你想要的PWM了,祝你好运!!!
华大单片机HC32L130/HC32L136PWM配置相关推荐
- 华大单片机HC32L130/HC32L136红外端口配置
华大单片机HC32L130/HC32L136红外端口配置 HC32L130一共有三个引脚可以配置成红外38.4KHZ输出引脚 #define PIN_PWM_IR GpioPortB, GpioPin ...
- 华大单片机HC32L130/HC32L136从机IIC通信
从机IIC理论知识 主机IIC的做法比较多,从机IIC的就相对比较难一点. 先补充一下从机IIC的思路: 先看IIC时序图,然后根据时序图理清IIC从机需要做哪些判断: 从机发送: ·判断IIC ST ...
- 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南
适用对象 系列 产品型号 HC32L130 HC32L130E8PA / HC32L130F8UA / HC32L130J8TA / HC32L130J8UA HC32L136 HC32L136J8T ...
- 华大单片机HC32L130使用内部RCH时钟源倍频24M外设PCLK到48M
最近使用HC32L130xxx单片机做项目,使用内部RCH做为主时钟源,RCH时钟源最高频率为24M,但是可以通过倍频PLL到48M,时钟源示意图如下图所示. 配置时钟时注意事项 1.在配置时钟源频率 ...
- 华大单片机HC32L130/136驱动NB-IOT模块(MN316)
频段:band5/8 PDP(Packet Data Protocol,分组数据协议),是外部PDN网与GPRS接口所用的网络协议. PDP附着是让终端登录到PS域里,就是登记到SGSN/PDSN的数 ...
- 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)
免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...
- 华大单片机移植TencentOS
华大单片机移植TencentOS-Tiny 文章目录 华大单片机移植TencentOS-Tiny 一.参考链接: 二.资料准备 三.开始移植 四.移植完成-测试 五.总结 一.参考链接: 1.Tiny ...
- 单片机笔记十一:华大单片机
最近在用华大的芯片做开发,因为某些芯片涨价太厉害,而且太难买了,专门买了华大的开发板回来用,这是一款国产的芯片,用的ARM公司的"Cortex-M0"内核,以前用过stm32f10 ...
- 华大单片机HC32F460 系列MCU
1 摘要 本篇应用笔记主要介绍如何使用华大单片机 HC32F460 系列MCU的 DMA 模块传输数据. 2 DMA 简介 什么是 DMA? DMA(直接内存访问控制器)功能块可以不通过 CPU 高速 ...
最新文章
- WebForm 【上传图片--添加水印】
- Android Volley完全解析3:定制自己的Request
- mRNA定位数据库mRNALocater使用指南
- 在Java web中使用json
- Python学习 Day 3 字符串 编码 list tuple 循环 dict set
- 华为什么时候更新鸿蒙os,华为鸿蒙系统升级时间表
- 阿里云@广东:让我们一起上云!
- 用计算机弹奇迹再现谱子,《原神》奇迹再现乐谱分享 风物之诗琴乐谱分享
- asp优化:认识和优化connection对象
- PDF文件转换成excel文件的三种方法
- Java多线程编程之Active Object模式
- 新一代ARINC818仿真板卡
- 安全渗透测试 服务器 系统,一次完整的安全渗透测试
- Windows超级管理器,电脑必备神器,内置超多实用小工具,帮你解决电脑相关问题!
- Volatility工具使用
- FPGA DVB-S2 FEC 信道译码 BCH译码器 LDPC译码器 解交织器 IP core
- 引路蜂技术博客论坛开放
- java调用jasper_Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表
- volice java_Volice~亡者之声~
- LW_OOPC学习02