这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » NC220PWM中的DutyCycle可以用小数吗?

共2条 1/1 1 跳转至

NC220PWM中的DutyCycle可以用小数吗?

工程师
2024-01-24 15:57:24     打赏

请问一下
NC220的PWM 中的 DutyCycle
文件是说可以设定为0 ~ 100(估计是整数),
请问,可以使用float吗?


NUC200Series_BSP_CMSIS_v3.00.005
中,有一个Function 定义如下:
uint32_t PWM_ConfigOutputChannel(PWM_T *pwm,
                                 uint32_t u32ChannelNum,
                                 uint32_t u32Frequency,
                                 uint32_t u32DutyCycle)
其中的有一行是:

*((__IO uint32_t *)((((uint32_t)   ((pwm)->CMR0)) + u32ChannelNum * 12))) = u32DutyCycle * (u16CNR + 1) / 100 - 1;

这好像是整数的计算,
因为我想要提高解析度。
请问,可以改成Float 吗,
或是有其它的控制方法吗?




关键词: NC220     DutyCycle    

助工
2024-01-24 15:58:07     打赏
2楼

1、寄存器的值必须是整数;
2、使用我们例程占空比输入值必须是整数;
3、可以不用我们例程的函数,自己写,用小数计算,只要最后给到寄存器的是整数就行

4、在NUC200Series_BSP_CMSIS_v3.00.005中提供的函数定义中,参数u32ChannelNum代表通道数,类型是uint32_t,因此它也应该使用整数值。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]