完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我想要通过 CAN 收到 PWM_MODE = 0 / 1 / 2 / 3,将 PWM 的 DUTY 改为 0 / 25 / 50 / 100,但是我将 cy_stc_tcpwm_pwm_config_t 的 .compare0 用变数去调整时,出错:初始化器元素不恒定,好像不能变数作为 cy_stc_tc_pwm_pwm_config_t 的来源,请问那该怎么动态的完整的 PWM 数值?
用变量数作为 .compare0 根据 CAN 的接收数值设置 PWM DUTY |
|
相关推荐
2个回答
|
|
你可以tistictiontixtiondimeDistracydimendistondistraceLoverePlay compare0=0,mypwm_config2存放compare0=0x400,thissalessewennicorneNordimeNordiversoneplay compare0=0x400,thissalse
另外还有一种办法,可以通过切换CCC0 buffer来改进 |
|
|
|
要动态调整PWM的值,你可以通过以下步骤实现:
1. 首先,确保你的PWM已正确配置,并且可以正常地工作。这包括设置PWM的频率和其他必要的配置参数。 2. 接下来,你需要在CAN消息接收的回调函数中获取PWM_MODE的值,并将其存储在一个变量中。 3. 根据PWM_MODE的值,你可以使用一个条件语句来设置PWM的DUTY。例如,如果PWM_MODE为0,则将PWM的DUTY设置为0;如果PWM_MODE为1,则将PWM的DUTY设置为25;以此类推。 4. 然后,你可以使用PWM驱动库提供的函数来动态地将新的DUTY值设置给PWM。对于Cypress PSoC系列芯片,你可以使用`Cy_TCPWM_PWM_SetCompare0()`函数来完成这个任务。 以下是一个示例代码,展示如何在CAN消息接收回调函数中动态调整PWM的DUTY值: ```c #include "cy_tcpwm_pwm.h" // 定义一个全局变量来存储PWM的DUTY值 uint32_t pwmDuty = 0; // 定义CAN消息接收回调函数 void canMsgReceivedCallback(uint8_t pwmMode) { // 根据PWM_MODE的值设置PWM的DUTY if (pwmMode == 0) { pwmDuty = 0; } else if (pwmMode == 1) { pwmDuty = 25; } else if (pwmMode == 2) { pwmDuty = 50; } else if (pwmMode == 3) { pwmDuty = 100; } else { // 处理无效的PWM_MODE值 } // 将新的DUTY值设置给PWM Cy_TCPWM_PWM_SetCompare0(PWM_HW, PWM_CMP0_IDX, pwmDuty); } int main() { // 初始化PWM配置 cy_stc_tcpwm_pwm_config_t pwmConfig = { // 设置PWM的其他必要配置参数 }; Cy_TCPWM_PWM_Init(PWM_HW, PWM_CNT_NUM, &pwmConfig); Cy_TCPWM_PWM_Enable(PWM_HW, PWM_CNT_NUM); // 注册CAN消息接收回调函数 // 在回调函数中获取PWM_MODE并设置PWM的DUTY值 canRegisterRxCallback(canMsgReceivedCallback); while (1) { // 执行其他任务 } } ``` 希望这可以帮助到你!如果你有任何其他问题,请随时提问。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
551 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
910 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
575 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
572 浏览 0 评论
1221 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11769 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 18:49 , Processed in 0.887321 second(s), Total 78, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号