@@ -682,7 +682,7 @@ void _writeDutyCycle2PWM(float dc_a, float dc_b, void* params) {
682
682
* @param pinB phase B hardware pin number
683
683
* @param pinC phase C hardware pin number
684
684
*/
685
- void _writeDutyCycle3PWM (float dc_a, float dc_b, float dc_c, int pinA, int pinB, int pinC, void * params) {
685
+ void _writeDutyCycle3PWM (float dc_a, float dc_b, float dc_c, void * params) {
686
686
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [0 ], dc_a);
687
687
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [1 ], dc_b);
688
688
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [2 ], dc_c);
@@ -706,7 +706,7 @@ void _writeDutyCycle3PWM(float dc_a, float dc_b, float dc_c, int pinA, int pinB
706
706
* @param pin2A phase 2A hardware pin number
707
707
* @param pin2B phase 2B hardware pin number
708
708
*/
709
- void _writeDutyCycle4PWM (float dc_1a, float dc_1b, float dc_2a, float dc_2b, int pin1A, int pin1B, int pin2A, int pin2B, void * params){
709
+ void _writeDutyCycle4PWM (float dc_1a, float dc_1b, float dc_2a, float dc_2b, void * params){
710
710
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [0 ], dc_1a);
711
711
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [1 ], dc_1b);
712
712
writeSAMDDutyCycle (((SAMDHardwareDriverParams*)params)->tccPinConfigurations [2 ], dc_2a);
@@ -740,35 +740,36 @@ void _writeDutyCycle4PWM(float dc_1a, float dc_1b, float dc_2a, float dc_2b, in
740
740
* @param pinC_l phase C low-side hardware pin number
741
741
*
742
742
*/
743
- void _writeDutyCycle6PWM (float dc_a, float dc_b, float dc_c, int pinA_h, int pinA_l, int pinB_h, int pinB_l, int pinC_h, int pinC_l, float dead_zone, void * params){
744
- tccConfiguration* tcc1 = ((SAMDHardwareDriverParams*)params)->tccPinConfigurations [0 ];
745
- tccConfiguration* tcc2 = ((SAMDHardwareDriverParams*)params)->tccPinConfigurations [1 ];
746
- uint32_t pwm_res =((SAMDHardwareDriverParams*)params)->tccPinConfigurations [0 ]->pwm_res ;
743
+ void _writeDutyCycle6PWM (float dc_a, float dc_b, float dc_c, void * params){
744
+ SAMDHardwareDriverParams* p = (SAMDHardwareDriverParams*)params;
745
+ tccConfiguration* tcc1 = p->tccPinConfigurations [0 ];
746
+ tccConfiguration* tcc2 = p->tccPinConfigurations [1 ];
747
+ uint32_t pwm_res =p->tccPinConfigurations [0 ]->pwm_res ;
747
748
if (tcc1->tcc .chaninfo !=tcc2->tcc .chaninfo ) {
748
749
// low-side on a different pin of same TCC - do dead-time in software...
749
- float ls = dc_a+(((SAMDHardwareDriverParams*)params) ->dead_zone * (pwm_res-1 )); // TODO resolution!!!
750
+ float ls = dc_a+(p ->dead_zone * (pwm_res-1 )); // TODO resolution!!!
750
751
if (ls>1.0 ) ls = 1 .0f ; // no off-time is better than too-short dead-time
751
752
writeSAMDDutyCycle (tcc1, dc_a);
752
753
writeSAMDDutyCycle (tcc2, ls);
753
754
}
754
755
else
755
756
writeSAMDDutyCycle (tcc1, dc_a); // dead-time is done is hardware, no need to set low side pin explicitly
756
757
757
- tcc1 = ((SAMDHardwareDriverParams*)params) ->tccPinConfigurations [2 ];
758
- tcc2 = ((SAMDHardwareDriverParams*)params) ->tccPinConfigurations [3 ];
758
+ tcc1 = p ->tccPinConfigurations [2 ];
759
+ tcc2 = p ->tccPinConfigurations [3 ];
759
760
if (tcc1->tcc .chaninfo !=tcc2->tcc .chaninfo ) {
760
- float ls = dc_b+(((SAMDHardwareDriverParams*)params) ->dead_zone * (pwm_res-1 ));
761
+ float ls = dc_b+(p ->dead_zone * (pwm_res-1 ));
761
762
if (ls>1.0 ) ls = 1 .0f ; // no off-time is better than too-short dead-time
762
763
writeSAMDDutyCycle (tcc1, dc_b);
763
764
writeSAMDDutyCycle (tcc2, ls);
764
765
}
765
766
else
766
767
writeSAMDDutyCycle (tcc1, dc_b);
767
768
768
- tcc1 = ((SAMDHardwareDriverParams*)params) ->tccPinConfigurations [4 ];
769
- tcc2 = ((SAMDHardwareDriverParams*)params) ->tccPinConfigurations [5 ];
769
+ tcc1 = p ->tccPinConfigurations [4 ];
770
+ tcc2 = p ->tccPinConfigurations [5 ];
770
771
if (tcc1->tcc .chaninfo !=tcc2->tcc .chaninfo ) {
771
- float ls = dc_c+(((SAMDHardwareDriverParams*)params) ->dead_zone * (pwm_res-1 ));
772
+ float ls = dc_c+(p ->dead_zone * (pwm_res-1 ));
772
773
if (ls>1.0 ) ls = 1 .0f ; // no off-time is better than too-short dead-time
773
774
writeSAMDDutyCycle (tcc1, dc_c);
774
775
writeSAMDDutyCycle (tcc2, ls);
0 commit comments