@UglyMan: @Juhas:
static float Pwms(int lastColor, int targetColor, int fadeHours, int fadeMins, bool fade_state)
{
//long fadeTimeLeftMinutes = 0;
float currentColor = 0;
float elapsedTime;
long fadeDurationMillis;
if (fade_state == true)
{
long fadeDurationSeconds = ((fadeHours * 60 * 60) + (fadeMins * 60));
fadeDurationMillis = (fadeDurationSeconds * 1000);
elapsedTime = WiringPi.Timing.millis() - fadeStartTime;
float fadeLevel = elapsedTime / fadeDurationMillis;
// var fadeTimeLeft = fadeDurationMillis - Convert.ToInt64(elapsedTime * 1000) / 1000;
// fadeTimeLeftMinutes = (((fadeTimeLeft / 1000) / 60) + 1);
int fadeAmountColor = lastColor - targetColor;
currentColor = lastColor - (fadeAmountColor * fadeLevel);
if (fadeAmountColor >= 0 && currentColor <= targetColor) { }
else if (fadeAmountColor <= 0 && currentColor >= targetColor) { }
else
return currentColor;
}
return currentColor;
}
to mam i działa - trochę skomplikowanie ale jest ok. Chciałbym to uprościć do minimum.
chodzi o plynne zmiany wartości pwm o okreslonej godzinie uruchamia sie ten kod i zmienia przez okreslony czas od wartosci do wartosci