c - 两个参数 c

标签 c arrays loops pwm

我正致力于一次启用多个 PWM,我不想复制粘贴代码 6 次,但我在启用 6 个不同的 PWM 时遇到了麻烦,有效的代码是:

    void pwmPinChoices(void){

    pwm_channel_disable(PWM, PWM_CHANNEL_7);
    pwm_pin6_instance.ul_prescaler = PWM_CMR_CPRE_CLKA;
    pwm_pin6_instance.ul_period = 100;
    pwm_pin6_instance.ul_duty = 50;
    pwm_pin6_instance.channel = PWM_CHANNEL_7;
    pwm_channel_init(PWM, &pwm_pin6_instance);
    pio_set_peripheral(PIOC, PIO_PERIPH_B, PIO_PC24B_PWML7);
    pwm_channel_enable(PWM, PWM_CHANNEL_7);
}

我希望能够更改 pwm_pinx_instance 和 pwm_channel_x,我尝试使用数组但它不起作用..

我试过的代码是:

    void pwmChoices(void){
    char ChlArr = [0, 1, 4, 5, 6, 7];
    char PinArr = [34, 36, 6, 7, 8, 9];

    for(int i = 0; i < 6; i++){
    pwm_channel_disable(PWM, PWM_CHANNEL_ChlArr[i]);
    pwm_PinArr[i]_instance.ul_prescaler = PWM_CMR_CPRE_CLKA;
    pwm_PinArr[i]_instance.ul_period = 100;
    pwm_PinArr[i]_instance.ul_duty = 50;
    pwm_PinArr[i]_instance.channel = PWM_CHANNEL_ChlArr[i];
    pwm_channel_init(PWM, &pwm_PinArr[i]_instance);
    pio_set_peripheral(PIOC, PIO_PERIPH_B, PIO_PC24B_PWMLChlArr[i]);
    pwm_channel_enable(PWM, PWM_CHANNEL_ChlArr[i]);
}

但是使用这段代码我得到了很多函数未声明的错误..

最佳答案

char ChlArr[] = {0, 1, 4, 5, 6, 7}
char PinArr[] = {34, 36, 6, 7, 8, 9};

而不是

char ChlArr = [0, 1, 4, 5, 6, 7];
char PinArr = [34, 36, 6, 7, 8, 9];

关于c - 两个参数 c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30214927/

相关文章:

ios - 在 swift 中使用延迟调用数组项 - 获取 UIResponder 错误

c - 循环在第一次后跳过 scanf 语句

lwn.net 中的container_of 示例代码

c - 我应该使用位域来映射传入的串行数据吗?

javascript - 检查数组元素是否已定义的简写

php - 循环查询和查找表。 MySQL 和 PHP

java - 遍历不同长度的并行数组

c - C语言中如何给变量赋值特殊字符?

c - 如何发送带有填充字段的结构?

javascript - 如何在JS中获取<h2>元素内<a>元素的id?