Hello all,
I’m just playing with PWM examples in the Guide and have a problem with FEZ_Pin.PWM.LED.
I expected that FEZ_Pin.Digital.LED is the same led as FEZ_Pin.PWM.LED or im totally wrong?
When i’m running the example on page 55 (the fading led) the led light is not changing at all.
btw i have updated my FEZ to the last firmware so that can’t be the issue is it?
It’s a bug in the example Or a typo ?
The (bad) line is this one :
byte duty = 1;
At this place, duty should be set to at least 11 or else the test “if (duty > 90 || duty < 10)” will make duty oscillating between 1 and 2 : 1 2 1 2 1 2 1 2
It will never be greater than 2, hence the led staying “off”.
I have written a small pieze of code to read a POT-value and dim the led:
public class Program
{
public static void Main()
{
byte duty = 1;
FEZ_Components.POT pot = new FEZ_Components.POT(FEZ_Pin.AnalogIn.An0);
PWM pwm = new PWM((PWM.Pin)FEZ_Pin.PWM.Di10);
while (true)
{
duty = Convert.ToByte(pot.GetPosition().ToString());
pwm.Set(10000, duty);
Thread.Sleep(10);
}
}
}
Why this line ?
duty = Convert.ToByte(pot.GetPosition().ToString());
Shouldn’t it be something like this ? :
duty = (byte)pot.GetPosition();
I don’t understand why you convert to string and then convert it immediately back to byte ?! That’s without taking into account that such calls are a bit time consuming.
thankyou Bec à Fuel,
that was exact the problem.
I think the wetter here is playing with my mind.
indeed, wrote it quick, my bad…
We will update the book. Thanks
Thank you too. It will prevent other messages like this one