/**
* Convert a value from 0 to 255 to a 1.0 ms
* to 2.0 ms positive PWM cycle based on
* the clock configuration of the TC.
*/
void pwm_lamp_update(int index, uint8_t lamp_user)
{
uint16_t lamp = 0;
lamp = (240 * (uint16_t)lamp_user);
if (0 == index)
{
//lamp0_intensity = ((1175 * (uint16_t) lamp_user) / 100) + 3008;
//lamp0_intensity = lamp0_intensity * 2;
}
else if (1 == index)
{
//lamp1_intensity = ((1175 * (uint16_t) lamp_user) / 100) + 3008;
//lamp1_intensity = lamp1_intensity * 2;
//lamp1_intensity = 240;
//lamp1_intensity = 65500;
//lamp1_intensity = 31680;
//lamp1_intensity = (240 * (uint16_t)lamp_user);
lamp1_intensity = lamp;
lamp1_intensity = 41520;
}
lamp_user = lamp_user;
}
lampx_intensity is an uint16_t.
The first two lines of the if statements are code that creates a servo PWM type signal. I am trying to make a power PWM signal.
I find that if I hard code a number everything works fine. Anytime that I use a variable I don't get any output.
In the example above, even 'lamp1_intensity = lamp;' fails. I see a valid value for lamp1_intensity. The live microcontroller is not throwing any errors that I see. The light is not working and there isn't any PWM signal when it fails.
The microcontroller is an AT03259 SAM D21/DA1.
0 comments:
Post a Comment
Thanks