好的,在过去的几个小时里,我试图用arduino锁定
- 有4个按钮,每个按钮有数字(1,2,3,4) - 你有8个代码空间
所以我开始使用会改变密码的功能。 (b1s ....是按钮状态)
问题是,是否有办法比将数组的每个部分转换为int更容易?感谢您有一个愉快的一天!
int passwordCreate() {
int x1[9];
int x2[9];
int x3[9];
int x4[9];
int a=9;
int c=0;
int space[a];
while(c < a) {
if(b1s==HIGH) {
x1[c]==c+1;
x2[c]==0;
x3[c]==0;
x4[c]==0;
c++;
}
else if(b2s==HIGH) {
x1[c]==0;
x2[c]==c+1;
x3[c]==0;
x4[c]==0;
c++;
}
else if(b3s==HIGH) {
x1[c]==0;
x2[c]==0;
x3[c]==c+1;
x4[c]==0;
c++;
}
else if(b4s==HIGH) {
x1[c]==0;
x2[c]==0;
x3[c]==0;
x4[c]==c+1;
c++;
}
}
答案 0 :(得分:0)
更优雅的代码是:
int main() {
int x[4][9];
//...
passwordCreate(x);
//...
return(0);
}
void passwordCreate(int x[4][9]) {
int i;
int a=9;
int c=0;
int space[a];
while(c < a) {
for (i=0; i<4; i++)x[i][c]= 0;
if (b1s==HIGH) x[0][c]= ++c;
else if(b2s==HIGH) x[1][c]= ++c;
else if(b3s==HIGH) x[2][c]= ++c;
else if(b4s==HIGH) x[3][c]= ++c;
}
}
(并使用=
进行分配,而不是==
。)
(编辑:显示如何调用并返回数组。)
注意:如果所有的bI都很低,则会出现无限循环。
注意:任何时候只有一个bI可能会很高(任何下一个bIs都会被忽略)