Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Tourobo2022_TBCMotorDriver
motorDrive_SMB.cpp@0:db4f58345725, 2020-03-25 (annotated)
- 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?
User | Revision | Line number | New 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 | } |