例子是..\ti\controlSUITE\development_kits\TemplateProjects\DPLibv3Template-F2802x
里面代码:PWM_1ch_CNF(1, 300,1,0); //PWM初始化
PWMDRV_1ch_Duty=&Duty1A;Duty1A =_IQ24(0.8); 是直接输出0.8占空比的PWM波 。
但计算出的Duty1A的值是(16777216*0.8),远大于300,
通过单步调试发现寄存器CMPAM,TBPRDM 的值发送改变,正好是0.8的关系。
不知道参数是如何传递 ?通过哪段代码实现这个功能的?PWMDRV_1ch_Duty 主要起个什么作用,在其他地方没看到调用, 请赐教 !! 麻烦了!
Martin Yu:
通过PWMDRV_1ch_Duty1指针传递,Q24格式,调用DP_Lib库中的PWMDRV_1ch函数实现占空比的改变:
详见PDF资料,路径:C:\ti\controlSUITE\libs\app_libs\digital_power\f2802x_v2.0\Doc
例子是..\ti\controlSUITE\development_kits\TemplateProjects\DPLibv3Template-F2802x
里面代码:PWM_1ch_CNF(1, 300,1,0); //PWM初始化
PWMDRV_1ch_Duty=&Duty1A;Duty1A =_IQ24(0.8); 是直接输出0.8占空比的PWM波 。
但计算出的Duty1A的值是(16777216*0.8),远大于300,
通过单步调试发现寄存器CMPAM,TBPRDM 的值发送改变,正好是0.8的关系。
不知道参数是如何传递 ?通过哪段代码实现这个功能的?PWMDRV_1ch_Duty 主要起个什么作用,在其他地方没看到调用, 请赐教 !! 麻烦了!
yunQI shan:
回复 Martin Yu:
谢谢 ,追问一下,能否在PWMDRV_1ch.asm文件里打断点?我试着但打不了,想但不观察一下寄存器的变化。