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.
Diff: HbMotor.cpp
- Revision:
- 40:debe99e228d3
- Parent:
- 32:7f4145cc3551
- Child:
- 46:5074781a28dd
--- a/HbMotor.cpp Sat Jan 19 12:35:23 2019 +0000 +++ b/HbMotor.cpp Mon Jan 21 06:32:24 2019 +0000 @@ -29,7 +29,6 @@ //オフセット重畳 curVal = val = val + ofs; - //sp.printf("MOT [%d]",curVal);//Test Code //PWM幅設定 fpgaSubProp(id,val); } @@ -84,8 +83,8 @@ coefA = 0; coefB = 0; coefC = 0; - //curPwmVal = 0; - //curRpmVal = 0; + + fpgaval = 0; } //========================================= //デストラクタ @@ -130,28 +129,10 @@ tmpPwm = (INT16)(coefA * tmpRpm * tmpRpm + coefB * tmpRpm + coefC); if(tmpPwm < 0) tmpPwm = 0; } - - return tmpPwm; + fpgaval = tmpPwm; + return fpgaval; } -// void HbMotCtrl::setRpmValue(INT16 value){ -// INT16 iVal = 0; -// if(value + ofs > rpmMax){ -// iVal = rpmMax - ofs; -// } -// else if (value < 0){ -// iVal = 0; -// } -// else{ -// iVal = value; -// } -// val = iVal; -// iVal+=ofs; -// UCHAR uPos = pos * 2 + typ; - -// fpgaMotor(uPos, calcPwm((UINT16)iVal)); -// } - void HbMotCtrl::setRpmValue(eMotInType type, INT16 value){ INT16 iVal = 0; INT16 tmpVal; @@ -186,23 +167,6 @@ fpgaMotor(uPos, calcPwm(iVal)); } -// void HbMotCtrl::setRpmOfs(INT16 value){ -// int iVal = 0; -// if(value + val > rpmMax){ -// iVal = rpmMax - val; -// } -// else if (value < 0){ -// iVal = 0; -// } -// else{ -// iVal = value; -// } -// ofs = iVal; -// iVal+=val; -// UCHAR uPos = pos * 2 + typ; -// fpgaMotor(uPos, calcPwm((UINT16)iVal)); -// } - INT16 HbMotCtrl::getRpmValue(eMotInType type){ if(OFS == type){ return ofs; @@ -212,10 +176,16 @@ return val; } } -// INT16 HbMotCtrl::getRpmOfs(){ -// return ofs; -// } - +void HbMotCtrl::setValFpga(INT16 value) +{ + UCHAR uPos = pos * 2 + typ; + fpgaval = value; + fpgaMotor(uPos, value); +} +INT16 HbMotCtrl::getValFpga() +{ + return fpgaval; +} //========================================= //コンストラクタ //========================================= @@ -276,30 +246,40 @@ motCtrl[1]->setMotCoef(a,b,c); } } -//void HbSubProp::makeTbl(){ -// if(motCtrl[0] == NULL) return; -// if(motCtrl[1] == NULL) return; -// motCtrl[0]->makeTable(); -// motCtrl[1]->makeTable(); -//} + void HbSubProp::setValue(eMotInType type, INT16 val){ if(motCtrl[0] == NULL || motCtrl[1] == NULL) return; motCtrl[0]->setRpmValue(type, val); motCtrl[1]->setRpmValue(type, val); } -// void HbSubProp::setOfs(INT16 val){ -// if(motCtrl[0] == NULL || motCtrl[1] == NULL) return; -// motCtrl[0]->setRpmOfs(val); -// motCtrl[1]->setRpmOfs(val); -// } + INT16 HbSubProp::getValue(eMotInType type){ if(motCtrl[0] == NULL || motCtrl[1] == NULL) return 0; // 同じはずなのでINのみ return motCtrl[0]->getRpmValue(type); } -// INT16 HbSubProp::getOfs(){ -// if(motCtrl[0] == NULL || motCtrl[1] == NULL) return 0; -// // 同じはずなのでINのみ -// return motCtrl[0]->getRpmOfs(); -// } + +void HbSubProp::setValueFpgaMot(eMotType type, INT16 val) +{ + if(motCtrl[0] == NULL || motCtrl[1] == NULL) return; + if(type == IN){ + motCtrl[0]->setValFpga(val); + } + else + { + motCtrl[1]->setValFpga(val); + } +} +INT16 HbSubProp::getValueFpgaMot(eMotType type) +{ + if(motCtrl[0] == NULL || motCtrl[1] == NULL) return; + if(type == IN){ + return motCtrl[0]->getValFpga(); + } + else + { + return motCtrl[1]->getValFpga(); + } +} +