gpt4 book ai didi

c - Arduino : multiplexer code not entering for loop

转载 作者:行者123 更新时间:2023-11-30 15:33:25 25 4
gpt4 key购买 nike

在 Multiplex_read() 函数中,有一个 for 循环似乎没有运行,我不知道它发生了什么:

int write_pins[] = { 0,1,2,3,4,5,6 };
int max_min_array[16][1];
int multiplex_read_array[16];

int multiplex_read(){
Serial.println("inside multiplex read");
// ----------------------------------------------------
// Having issues with this for loop
// ----------------------------------------------------
for (int mux_pin; mux_pin < 5; mux_pin++){
Serial.println("in for loop");
mux_pin_select(mux_pin);
int sensorValue = analogRead(A0);
Serial.print("# pin: ");
Serial.print(mux_pin);
Serial.print(" Value: ");
Serial.print(sensorValue);
Serial.println("");
max_min(mux_pin,sensorValue);
}
return 0;
}

int mux_pin_select(int mux_pin){
Serial.println("inside mux_pin_select");
// sets select pins based on pin (pin = decimal)
// write_pins 0,1 = empty
// write_pins 2 = Disable
// write_pins 3,4,5,6 = S0,S1,S2,S3
int select_pin_map[] = { 3,4,5,6 };
for ( int b; b < 3;b++){
int bitset = bitRead(mux_pin, b);
digitalWrite(select_pin_map[b], bitset);
}
return 0;
}

int max_min(int pin,int value){
Serial.println("inside max_min");
// set to initial reads and then move min_max
if ( max_min_array[pin][0] == 0 ){
max_min_array[pin][0] = value;
max_min_array[pin][0] = value;
}
// min
if ( max_min_array[pin][0] > value ){
max_min_array[pin][0] = value;
}
// max
if ( max_min_array[pin][1] < value ){
max_min_array[pin][1] = value;
}
return 0;
}



void setup(){
// clear max_min_array and multiplex_read_array
for ( int i = 0; i <16; i++){
max_min_array[i][0] = 0;
max_min_array[i][1] = 0;
multiplex_read_array[i] = 0;
}
// initialize write pins
for ( int i = 0; i <= 7; i++){
pinMode(write_pins[i], OUTPUT);
}
Serial.begin(9600);
}

void loop(){
if (Serial.available()){
multiplex_read();
Serial.println("### Min Max Array #########");
for (int i; i < 16; i++){
Serial.print(max_min_array[i][0]);
Serial.print(" ");
Serial.println(max_min_array[i][1]);
}
}
delay(2000);
}

输出:

inside multiplex read
### Min Max Array #########
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0

最佳答案

初始化变量:

for (int mux_pin = 0 ; mux_pin < 5; mux_pin++){

您有很多硬编码值,因此请适当更改初始值。

关于c - Arduino : multiplexer code not entering for loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23717455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com