Ejemplo n.º 1
0
//******************************************************************************
void pwmout_write(pwmout_t* obj, float percent)
{
    // Saturate percent if outside of range
    if(percent < 0.0) {
        percent = 0.0;
    } else if(percent > 1.0) {
        percent = 1.0;
    }

    // Resize the pulse width to set the duty cycle
    pwmout_pulsewidth_us(obj, (int)(percent*obj->period));
}
Ejemplo n.º 2
0
void pwmout_pulsewidth_ms(pwmout_t *obj, int ms)
{
    // raught saturation < 0, quasi-max>
    if (ms > MAX_PWM_PERIOD_MS)
    {
        ms = MAX_PWM_PERIOD_MS;
    }
    else if (ms < 0)
    {
        ms = 0;
    }
    
    int us = ms * 1000;
    
    pwmout_pulsewidth_us(obj, us);
}
Ejemplo n.º 3
0
void pwmout_pulsewidth(pwmout_t *obj, float seconds)
{
    // raught saturation < 0, quasi-max>
    if (seconds > MAX_PWM_PERIOD_S)
    {
        seconds = MAX_PWM_PERIOD_S;
    }
    else if (seconds < 0)
    {
        seconds = 0;
    }
    
    int us = seconds * 1000000;
    
    pwmout_pulsewidth_us(obj,us);
}
Ejemplo n.º 4
0
//int main_app(IN u16 argc, IN u8 *argv[])
void main(void)
{
    int i;
    
    for (i=0; i<4; i++) {
        pwmout_init(&pwm_led[i], pwm_led_pin[i]);
        pwmout_period_us(&pwm_led[i], PWM_PERIOD);
    }

    while (1) {
#if USE_FLOAT
        for (i=0; i<4; i++) {
            pwmout_write(&pwm_led[i], pwms[i]);

            pwms[i] += steps[i];
            if (pwms[i] >= 1.0) {
                steps[i] = -PWM_STEP;
                pwms[i] = 1.0;
            }

            if (pwms[i] <= 0.0) {
                steps[i] = PWM_STEP;
                pwms[i] = 0.0;
            }
        }
#else        
        for (i=0; i<4; i++) {
            pwmout_pulsewidth_us(&pwm_led[i], pwms[i]);

            pwms[i] += steps[i];
            if (pwms[i] >= PWM_PERIOD) {
                steps[i] = -PWM_STEP;
                pwms[i] = PWM_PERIOD;
            }

            if (pwms[i] <= 0) {
                steps[i] = PWM_STEP;
                pwms[i] = 0;
            }
        }
#endif        
//        wait_ms(20);
//        RtlMsleepOS(25);
		pwm_delay();
    }
}
Ejemplo n.º 5
0
void pwmout_write(pwmout_t *obj, float percent)
{
    
    if (percent < 0)
    {
        percent = 0;
    }
    else if (percent > 1)
    {
        percent = 1;
    }
    
    pwm_signal_t * p_pwm_signal = &(((pwm_t*)obj->pwm_struct)->signal);
    
    p_pwm_signal->duty = percent;
    
    int us  = (((int)p_pwm_signal->period_us) * percent);
    
    pwmout_pulsewidth_us(obj, us);
}
Ejemplo n.º 6
0
void pwmout_pulsewidth_ms(pwmout_t *obj, int ms)
{
    pwmout_pulsewidth_us(obj, ms * 1000);
}
Ejemplo n.º 7
0
void pwmout_pulsewidth(pwmout_t *obj, float seconds)
{
    pwmout_pulsewidth_us(obj, seconds * 1000000.0f);
}
Ejemplo n.º 8
0
//******************************************************************************
void pwmout_pulsewidth(pwmout_t* obj, float seconds)
{
    pwmout_pulsewidth_us(obj, (int)(seconds * 1000000.0));
}