@@ -292,7 +292,8 @@ void hm2_pwmgen_force_write(hostmot2_t *hm2) {
292292 for (i = 0 ; i < hm2 -> pwmgen .num_instances ; i ++ ) {
293293 hm2 -> pwmgen .instance [i ].written_output_type = * hm2 -> pwmgen .instance [i ].hal .param .output_type ;
294294 hm2 -> pwmgen .instance [i ].written_offset_mode = * hm2 -> pwmgen .instance [i ].hal .param .offset_mode ;
295- hm2 -> pwmgen .instance [i ].written_dither = * hm2 -> pwmgen .instance [i ].hal .param .dither ;
295+ if (hm2 -> pwmgen .instance [i ].hal .param .dither )
296+ hm2 -> pwmgen .instance [i ].written_dither = * hm2 -> pwmgen .instance [i ].hal .param .dither ;
296297 hm2 -> pwmgen .instance [i ].written_enable = * hm2 -> pwmgen .instance [i ].hal .pin .enable ;
297298 }
298299
@@ -327,7 +328,8 @@ void hm2_pwmgen_write(hostmot2_t *hm2) {
327328
328329 // update dither?
329330 for (i = 0 ; i < hm2 -> pwmgen .num_instances ; i ++ ) {
330- if (* hm2 -> pwmgen .instance [i ].hal .param .dither != hm2 -> pwmgen .instance [i ].written_dither ) {
331+ if (hm2 -> pwmgen .instance [i ].hal .param .dither &&
332+ * hm2 -> pwmgen .instance [i ].hal .param .dither != hm2 -> pwmgen .instance [i ].written_dither ) {
331333 goto force_write ;
332334 }
333335
@@ -512,6 +514,7 @@ int hm2_pwmgen_parse_md(hostmot2_t *hm2, int md_index) {
512514 HM2_ERR ("error adding param '%s', aborting\n" , name );
513515 goto fail1 ;
514516 }
517+ * (hm2 -> pwmgen .instance [i ].hal .param .dither ) = 0 ;
515518 }
516519 rtapi_snprintf (name , sizeof (name ), "%s.pwmgen.%02d.scale" , hm2 -> llio -> name , i );
517520 r = hal_pin_float_new (name , HAL_OUT , & (hm2 -> pwmgen .instance [i ].hal .param .scale ), hm2 -> llio -> comp_id );
@@ -536,7 +539,6 @@ int hm2_pwmgen_parse_md(hostmot2_t *hm2, int md_index) {
536539 // init hal objects
537540 * (hm2 -> pwmgen .instance [i ].hal .pin .enable ) = 0 ;
538541 * (hm2 -> pwmgen .instance [i ].hal .pin .value ) = 0.0 ;
539- * (hm2 -> pwmgen .instance [i ].hal .param .dither ) = 0 ;
540542 * (hm2 -> pwmgen .instance [i ].hal .param .scale ) = 1.0 ;
541543 * (hm2 -> pwmgen .instance [i ].hal .param .offset_mode ) = 0 ;
542544 * (hm2 -> pwmgen .instance [i ].hal .param .output_type ) = HM2_PWMGEN_OUTPUT_TYPE_PWM ;
0 commit comments