mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Add support for dual speed PWM
This commit is contained in:
@@ -33,7 +33,7 @@ static uint32_t availableW10(uint8_t sample) {
|
||||
//P = V^2 / R, v*v = v^2 * 100
|
||||
// R = R*10
|
||||
// P therefore is in V^2*100/R*10 = W*10.
|
||||
uint32_t v = getInputVoltageX10(systemSettings.voltageDiv, sample); // 100 = 10v
|
||||
uint32_t v = getInputVoltageX10(systemSettings.voltageDiv, sample); // 100 = 10v
|
||||
uint32_t availableWattsX10 = (v * v) / tipResistance;
|
||||
//However, 100% duty cycle is not possible as there is a dead time while the ADC takes a reading
|
||||
//Therefore need to scale available milliwats by this
|
||||
@@ -53,8 +53,6 @@ uint8_t X10WattsToPWM(int32_t milliWatts, uint8_t sample) {
|
||||
getInputVoltageX10(systemSettings.voltageDiv, sample);
|
||||
return 0;
|
||||
}
|
||||
// if (milliWatts > (int(systemSettings.pidPowerLimit) * 10))
|
||||
// milliWatts = (int(systemSettings.pidPowerLimit) * 10);
|
||||
|
||||
//Calculate desired milliwatts as a percentage of availableW10
|
||||
uint32_t pwm;
|
||||
@@ -74,5 +72,4 @@ static int32_t PWMToX10Watts(uint8_t pwm, uint8_t sample) {
|
||||
uint32_t maxMW = availableW10(sample); //Get the milliwatts for the max pwm period
|
||||
//Then convert pwm into percentage of powerPWM to get the percentage of the max mw
|
||||
return (((uint32_t) pwm) * maxMW) / powerPWM;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user