【发布时间】:2019-07-08 14:05:43
【问题描述】:
我想要优化这部分代码。它只是在重复自己,但我不知道如何使用我使用的定义在这里使用重复结构。
我定义了 GPIO_Ports 和 Pins。 这会一直持续到 SEL8。
if (out & (1 << 0)) {
GPIO_SetBits(SEL0_GPIO_Port, SEL0_Pin);
} else {
GPIO_ResetBits(SEL0_GPIO_Port, SEL0_Pin);
}
if (out & (1 << 1)) {
GPIO_SetBits(SEL1_GPIO_Port, SEL1_Pin);
} else {
GPIO_ResetBits(SEL1_GPIO_Port, SEL1_Pin);
}
if (out & (1 << 2)) {
GPIO_SetBits(SEL2_GPIO_Port, SEL2_Pin);
} else {
GPIO_ResetBits(SEL2_GPIO_Port, SEL2_Pin);
}
【问题讨论】:
-
用
SELx_GPIO_Port和SELx_Pin元素定义数组,然后遍历它们。 -
你的意思是这样的: char SELx_GPIO_Port[9] = {SEL0_GPIO_Port, SEL1_GPIO_Port, SEL2_GPIO_Port, ...} 我不确定我是否做得正确。我需要使用''吗?这个数组是什么类型的?字符?
-
与这些符号的类型相同...此时只有您知道。
-
请告诉我们
SEL0_GPIO_Port、SEL0_Pin等是什么,以及GPIO_SetBits和GPIO_ResetBits的原型 -
@Eduardo 请向我们展示您在评论中提到的代码,否则很难判断它是否正确。数组
should is probably bechar`的类型,但要确定你需要在我之前的评论中回答我的问题。