Yuta Togashi / motorDrive_SMB

Dependents:   Tourobo2022_TBCMotorDriver

Committer:
YutaTogashi
Date:
Wed Mar 25 09:22:53 2020 +0000
Revision:
0:db4f58345725
Child:
1:30665f088188
20200325 Add_README.txt

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YutaTogashi 0:db4f58345725 1 #include "motorDrive_SMB.h"
YutaTogashi 0:db4f58345725 2
YutaTogashi 0:db4f58345725 3 motorDriveSMB::motorDriveSMB (PinName PwmH,PinName Phase) : pwmh(PwmH),phase(Phase) {
YutaTogashi 0:db4f58345725 4 lowerLimitDuty = -1.0f;
YutaTogashi 0:db4f58345725 5 upperLimitDuty = 1.0f;
YutaTogashi 0:db4f58345725 6 }
YutaTogashi 0:db4f58345725 7
YutaTogashi 0:db4f58345725 8 void motorDriveSMB::setupFrequency(float frequency) {
YutaTogashi 0:db4f58345725 9 pwmh.period(1.0f / frequency);
YutaTogashi 0:db4f58345725 10 }
YutaTogashi 0:db4f58345725 11
YutaTogashi 0:db4f58345725 12 void motorDriveSMB::setupLimitDuty(float lowerLimit,float upperLimit) {
YutaTogashi 0:db4f58345725 13 lowerLimitDuty = lowerLimit;
YutaTogashi 0:db4f58345725 14 upperLimitDuty = upperLimit;
YutaTogashi 0:db4f58345725 15 }
YutaTogashi 0:db4f58345725 16
YutaTogashi 0:db4f58345725 17 void motorDriveSMB::output(float duty) {
YutaTogashi 0:db4f58345725 18 if(duty > 0.0f) {
YutaTogashi 0:db4f58345725 19 if(duty > upperLimitDuty) duty = upperLimitDuty;
YutaTogashi 0:db4f58345725 20 pwmh.write(fabs(duty));
YutaTogashi 0:db4f58345725 21 phase.write(false);
YutaTogashi 0:db4f58345725 22 } else if(duty < 0.0f){
YutaTogashi 0:db4f58345725 23 if(duty < lowerLimitDuty) duty = lowerLimitDuty;
YutaTogashi 0:db4f58345725 24 pwmh.write(fabs(duty));
YutaTogashi 0:db4f58345725 25 phase.write(true);
YutaTogashi 0:db4f58345725 26 } else {
YutaTogashi 0:db4f58345725 27 pwmh.write(0.0f);
YutaTogashi 0:db4f58345725 28 phase.write(false);
YutaTogashi 0:db4f58345725 29 }
YutaTogashi 0:db4f58345725 30 }