缪飞虎 发表于 2013-4-19 23:20:39

跪求大神 帮小弟看看

int sensorValue0 = analogRead(A0);
int sensorValue1 = analogRead(A1);
int sensorValue2 = analogRead(A2);
int sensorValue3 = analogRead(A3);
int sensorValue4 = analogRead(A4);
int sensorValue5 = analogRead(A5);
double voltage0=sensorValue0*(1.1/1023*3.01);
double voltage1=sensorValue1*(1.1/1023*3.01);
double voltage2=sensorValue2*(1.1/1023*3.01);
double voltage3=sensorValue3*(1.1/1023*3.01);
double voltage4=sensorValue4*(1.1/1023*3.01);
double voltage5=sensorValue5*(1.1/1023*3.01);
Serial.print("Battery 1: ");
Serial.print(voltage0);
Serial.print("   Battery 2: ");
Serial.print(voltage1);
Serial.print("   Battery 3: ");
Serial.print(voltage2);
Serial.print("   Battery 4: ");
Serial.print(voltage3);
Serial.print("   Battery 5: ");
Serial.print(voltage4);
Serial.print("   Battery 6: ");
Serial.println(voltage5);
这种代码 怎么用for循环精简呢?
求解

histamine 发表于 2013-4-19 23:44:50


struct {
    uint8_t pin;
    const char *str;
} list[] =
{
    {A0, "Battery 1: "},
    {A1, "   Battery 2: "},
    {A2, "   Battery 3: "},
    {A3, "   Battery 4: "},
    {A4, "   Battery 5: "},
    {A5, "   Battery 6: "},
};

for(uint8_t i = 0; i < sizeof(list) / sizeof(list); i++)
{
    int sensorValue = analogRead(list.pin);
    double voltage= sensorValue * (1.1 / 1023* 3.01);
    Serial.print(list.str);
    Serial.print(voltage);
}

缪飞虎 发表于 2013-4-19 23:45:59

histamine 发表于 2013-4-19 23:44 static/image/common/back.gif


感谢先其次是太复杂了有点难以学习 呵呵

histamine 发表于 2013-4-19 23:48:09

缪飞虎 发表于 2013-4-19 23:45 static/image/common/back.gif
感谢先其次是太复杂了有点难以学习 呵呵

用C语言写程序经常会用到这种将数据和逻辑分离的方法:lol

缪飞虎 发表于 2013-4-19 23:52:48

histamine 发表于 2013-4-19 23:48 static/image/common/back.gif
用C语言写程序经常会用到这种将数据和逻辑分离的方法

新问题   串口输出的值 每一段被换行了
可以不用一句一句的方式让它完整的显示Battery 1-Battery 6么?

histamine 发表于 2013-4-20 11:36:31

缪飞虎 发表于 2013-4-19 23:52 static/image/common/back.gif
新问题   串口输出的值 每一段被换行了
可以不用一句一句的方式让它完整的显示Battery 1-Battery 6么? ...

不好意思,理解能力比较差,没理解您的意思

仔细看了下1L的源代码,最后一行是
Serial.println(voltage5);

所以在我那个代码for循环结束后在加一行Serial.println("");才能使得每次输出Battery 1 - Battery 6之后换一行
页: [1]
查看完整版本: 跪求大神 帮小弟看看