Помогите с функцией

Тема в разделе "Arduino & Shields", создана пользователем MilkyWay, 19 авг 2016.

  1. MilkyWay

    MilkyWay Нерд

    Вот код:
    Код (C++):
    //#include <TroykaIMU.h>

    //Gyroscope gyro;
    //Accelerometer accel;
    //Barometer barometer;

    int pi_gyro_x = 0;
    int pi_gyro_y = 0;
    int pi_gyro_z = 0;

    int pi_accel_x = 0;
    int pi_accel_y = 0;
    int pi_accel_z = 0;

    int pi_barometer_pm = 0;
    int pi_barometer_c = 0;
    //IMU-sensor


    //HC-SR04
    int pi1_1 = 1;
    int pi1_2 = 2;

    int pi2_1 = 3;
    int pi2_2 = 4;

    int pi3_1 = 5;
    int pi3_2 = 6;

    int pi4_1 = 7;
    int pi4_2 = 8;
    //HC-SR04


    void setup() {
      Serial.begin(9600);
      //gyro.begin();
      //accel.begin();
      //barometer.begin();
    }

    void sensordispatch (int sensorid, int sensorsignal) {
      Serial.print(sensorid);
      Serial.print(",");
      Serial.print("root");
      Serial.print(",");
      Serial.print(sensorsignal);
      Serial.print("\n");
    }

    void loop() {
      //pi_gyro_x = gyro.readDegPerSecX();
      //pi_gyro_y = gyro.readDegPerSecY();
      //pi_gyro_z = gyro.readDegPerSecZ();
      //pi_accel_x = accel.readAX();
      //pi_accel_y = accel.readAY();
      //pi_accel_z = accel.readAZ();
      //pi_barometer_pm = barometer.readPressureMillibars();
      //pi_barometer_c = barometer.readTemperatureC();

      sensordispatch(0101, pi_gyro_x);
      sensordispatch(0102, pi_gyro_y);
      sensordispatch(0103, pi_gyro_z);

      sensordispatch(0201, pi_accel_x);
      sensordispatch(0202, pi_accel_y);
      sensordispatch(0203, pi_accel_z);

      sensordispatch(0301, pi_barometer_pm);
      sensordispatch(0302, pi_barometer_c);
    }
    Должно выводить:

    0101,root,0
    0102,root,0
    0103,root,0
    0201,root,0
    0202,root,0
    0203,root,0
    0301,root,0
    0302,root,0

    А выводит:

    65,root,0
    66,root,0
    67,root,0
    29,root,0
    30,root,0
    31,root,0
    (а дальше не помн),root,0
    (а дальше не помн),root,0

    Пробовал перепрошить не помогло. Пробовал другой скетч залить все равно не помогает.
     
  2. Vetrinus

    Vetrinus Гик

    Код (C++):
    void sensordispatch (int sensorid, int sensorsignal) {
      Serial.print(sensorid);
    Ни о чем не говорит? Функция выводит в порт значение, переданное первым параметром. Вызывайте функцию с нужными параметрами и будет вам счастье
     
  3. AlexU

    AlexU Гуру

    0101 -- это восьмиричное чило, как и все числа начинающиеся с '0', и равно десятичному 65.
    0102 == 66 и т.д.
     
    MilkyWay нравится это.
  4. MilkyWay

    MilkyWay Нерд

    Спасибо за ответ!
     
  5. MilkyWay

    MilkyWay Нерд

    Спасибо. А как сделать чтобы выводило 0101 или 0102 и так далее
     
  6. ostrov

    ostrov Гуру

    Незначащие нули выводят так:
    Код (C++):
    Serial.print("0");
    Serial.println(x);