Beispiel #1
0
int main (void) {
    int i;
    //initialize_pwm();
    unload_device_tree("P8_13");
    unload_device_tree("P9_14");
    if (pwm_start("P8_13",50,10,0) == -1) {
        printf("Error starting PWM\n");
    } else {
        printf("PWM Started!\n");
    }
    if (pwm_start("P9_14",50,5,0) == -1) {
        printf("Error starting PWM\n");
    } else {
        printf("PWM Started!\n");
    }
    /*
    for (i = 100; i > 0; i--)
    {
        pwm_set_frequency("P8_13",i);
        sleep(10);
    }
    for (i = 0; i < 100; i++)
    {
        pwm_set_frequency("P8_13",i);
        sleep(10);
    }*/
    sleep(5);
    pwm_cleanup();
}
BBIO_err adc_cleanup(void)
{
#ifdef BBBVERSION41
    return unload_device_tree("BB-ADC");
#else
    return unload_device_tree("cape-bone-iio");
#endif
}
Beispiel #3
0
int pwm_disable(const char *key)
{
    struct pwm_exp *pwm, *temp, *prev_pwm = NULL;
    char fragment[18];

    snprintf(fragment, sizeof(fragment), "bone_pwm_%s", key);
    unload_device_tree(fragment);

    // remove from list
    pwm = exported_pwms;
    while (pwm != NULL)
    {
        if (strcmp(pwm->key, key) == 0)
        {
            //close the fd
            close(pwm->period_fd);
            close(pwm->duty_fd);
            close(pwm->polarity_fd);

            if (prev_pwm == NULL)
            {
                exported_pwms = pwm->next;
                prev_pwm = pwm;
            } else {
                prev_pwm->next = pwm->next;
            }

            temp = pwm;
            pwm = pwm->next;
            free(temp);
        } else {
            prev_pwm = pwm;
            pwm = pwm->next;
        }
    }
    return 0;    
}
void adc_cleanup(void)
{
    unload_device_tree("cape-bone-iio");
}