标题可编程计数阵列PCA

PCA(可编程计数器阵列 Programmable Counter Array)支持最多 5 个 16 位的捕获/比较
模块。该定时/计数器可用作为一个通用的时钟计数/事件计数器的捕获/比较功能。PCA
的每个模块都可以进行独立编程,以提供输入捕捉,输出比较或脉冲宽度调制。另外
模块 4 有额外的看门狗定时器模式。

16 位重载 位重载 计数模式即PWM模式

计数器计数到与寄存器 CARR 的值相同时溢出后计数器的值变为 0,继续开始向上计
数,可用于 PCA 捕获模式,16 位 PWM 模式。
设置流程

  1. 设置 PCA_EPWM 的 EPMW 为 1
  2. 设置 PCA_CARR 设置计数周期值
  3. 设置 PCA_CMOD.CPS 选择计数时钟
  4. 根据需要设置 PCA_CMOD.CFIE 设置计数溢出中断使能
  5. 时钟 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配置相关推荐

  1. 华大单片机HC32L130/HC32L136红外端口配置

    华大单片机HC32L130/HC32L136红外端口配置 HC32L130一共有三个引脚可以配置成红外38.4KHZ输出引脚 #define PIN_PWM_IR GpioPortB, GpioPin ...

  2. 华大单片机HC32L130/HC32L136从机IIC通信

    从机IIC理论知识 主机IIC的做法比较多,从机IIC的就相对比较难一点. 先补充一下从机IIC的思路: 先看IIC时序图,然后根据时序图理清IIC从机需要做哪些判断: 从机发送: ·判断IIC ST ...

  3. 华大单片机HC32L130 / HC32L136 / HC32F030 系列硬件开发指南

    适用对象 系列 产品型号 HC32L130 HC32L130E8PA / HC32L130F8UA / HC32L130J8TA / HC32L130J8UA HC32L136 HC32L136J8T ...

  4. 华大单片机HC32L130使用内部RCH时钟源倍频24M外设PCLK到48M

    最近使用HC32L130xxx单片机做项目,使用内部RCH做为主时钟源,RCH时钟源最高频率为24M,但是可以通过倍频PLL到48M,时钟源示意图如下图所示. 配置时钟时注意事项 1.在配置时钟源频率 ...

  5. 华大单片机HC32L130/136驱动NB-IOT模块(MN316)

    频段:band5/8 PDP(Packet Data Protocol,分组数据协议),是外部PDN网与GPRS接口所用的网络协议. PDP附着是让终端登录到PS域里,就是登记到SGSN/PDSN的数 ...

  6. 华大单片机HC32L136J8TA读取DS18B20温度(源码+时钟配置)

    免费的C语言和linuxPDF文档:传送门 有一点C语言基础和华大单片机开发经验,应该就能看得懂就不多介绍了,有疑问可以留言,看到就回了; 关于协议具体解析:传送门@不脱发的程序猿 注(2021-05 ...

  7. 华大单片机移植TencentOS

    华大单片机移植TencentOS-Tiny 文章目录 华大单片机移植TencentOS-Tiny 一.参考链接: 二.资料准备 三.开始移植 四.移植完成-测试 五.总结 一.参考链接: 1.Tiny ...

  8. 单片机笔记十一:华大单片机

    最近在用华大的芯片做开发,因为某些芯片涨价太厉害,而且太难买了,专门买了华大的开发板回来用,这是一款国产的芯片,用的ARM公司的"Cortex-M0"内核,以前用过stm32f10 ...

  9. 华大单片机HC32F460 系列MCU

    1 摘要 本篇应用笔记主要介绍如何使用华大单片机 HC32F460 系列MCU的 DMA 模块传输数据. 2 DMA 简介 什么是 DMA? DMA(直接内存访问控制器)功能块可以不通过 CPU 高速 ...

最新文章

  1. WebForm 【上传图片--添加水印】
  2. Android Volley完全解析3:定制自己的Request
  3. mRNA定位数据库mRNALocater使用指南
  4. 在Java web中使用json
  5. Python学习 Day 3 字符串 编码 list tuple 循环 dict set
  6. 华为什么时候更新鸿蒙os,华为鸿蒙系统升级时间表
  7. 阿里云@广东:让我们一起上云!
  8. 用计算机弹奇迹再现谱子,《原神》奇迹再现乐谱分享 风物之诗琴乐谱分享
  9. asp优化:认识和优化connection对象
  10. PDF文件转换成excel文件的三种方法
  11. Java多线程编程之Active Object模式
  12. 新一代ARINC818仿真板卡
  13. 安全渗透测试 服务器 系统,一次完整的安全渗透测试
  14. Windows超级管理器,电脑必备神器,内置超多实用小工具,帮你解决电脑相关问题!
  15. Volatility工具使用
  16. FPGA DVB-S2 FEC 信道译码 BCH译码器 LDPC译码器 解交织器 IP core
  17. 引路蜂技术博客论坛开放
  18. java调用jasper_Java开源报表Jasper入门(2) -- 使用JasperSoft Studio创建一个简单报表
  19. volice java_Volice~亡者之声~
  20. LW_OOPC学习02

热门文章

  1. 【Machine Learning】模型融合之Stacking
  2. 写在迷茫痛苦之后的三十岁
  3. 零基础想要快速的学好3D游戏建模,兼职接单私活,来看业内人士的分析
  4. STM32cubeIDE使用CCMRAM
  5. C++中的常成员函数以及const用于函数重载
  6. CentOS通过Samba访问NAS共享目录
  7. Liunx树莓派(ARM)开发篇—第十四章、树莓派Linux内核编译步骤(超详细、图文结合)
  8. Linux基础知识详解
  9. unity sky Time of Day - Dynamic Sky Dome
  10. 将土豆或者youku 的视频放到自己的网站上面.