roboforum.ru

Технический форум по робототехнике.

Ошибка компилятора

Ошибка компилятора

torresok » 25 авг 2015, 16:10

Всем привет! Имееется скетч. До добавления в него библиотеки Servo.h все работало прекрасно. Теперь же компилятор выдает ошибку:

Robot IR Remote\IRremote.cpp.o: In function `__vector_11':
C:\Program Files\Arduino\libraries\RobotIRremote\src/IRremote.cpp:120: multiple definition of `__vector_11'
Servo\avr\Servo.cpp.o:C:\Program Files\Arduino\libraries\Servo\src\avr/Servo.cpp:81: first defined here
collect2.exe: error: ld returned 1 exit status
Ошибка компиляции.

Помогите разобраться. Спасибо!
Код: Выделить всёРазвернуть
#include <Servo.h>
#include <IRremote.h>
#include <AFMotor.h>


#define M_FORWARD BACKWARD
#define M_BACKWARD FORWARD
#define HI_MOVE 255

AF_DCMotor motor_a(1); 
AF_DCMotor motor_b(2); 
AF_DCMotor motor_c(3);
AF_DCMotor motor_d(4);
Servo arm1;
Servo arm2;

int RECV_PIN = 14;
IRrecv irrecv(RECV_PIN);
decode_results results;


void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запускаем ИК приемник
  arm1.attach(9);
  arm2.attach(10);
  arm1.write(90);
  arm2.write(90);
 
  //pinMode(10, OUTPUT);
  //pinMode(11, OUTPUT);
 
}

void loop()
{

    if (irrecv.decode(&results))
    {
      Serial.println(results.value, HEX);
      go(results.value);
      delay(100);
      irrecv.resume(); // Считываем код с ИК приемника
    }
    delay(100);

}
void control_servo (unsigned char rotation)
{
  Serial.println (rotation, HEX);
  switch (rotation)
  {
case 0xFF:
     arm1.write (180);
    break;
case 0xFFF:
     arm1.write (90);
    break;
case 0xFFFF:
     arm2.write (180);
    break;
case 0xFFFFF:
     arm2.write (90);
  break;
}
}
//
// Подпрограмма управления двигателями
//
void go(unsigned char direction)
{

  Serial.println(direction, HEX);
  switch (direction)
  {

       
  case 0xF7://Код кнопки СТОП
      motor_a.run(RELEASE);
      motor_b.run(RELEASE);
      motor_c.run(RELEASE);
      motor_d.run(RELEASE);
      //digitalWrite(10, LOW);
      //digitalWrite(11, LOW);
    break;
   
  case 0x77://Код кнопки ВПЕРЕД мотор(а)
      motor_a.setSpeed(HI_MOVE);
      motor_a.run(M_FORWARD);
      //digitalWrite(10, HIGH);
      //digitalWrite(11, HIGH);
    break;

  case 0xB7://Код кнопки ВПЕРЕД мотор (б)
      motor_b.setSpeed(HI_MOVE);
      motor_b.run(M_FORWARD);
      //digitalWrite(10, LOW);
      //digitalWrite(11, HIGH);
    break;

  case 0x37://Код кнопки ВПЕРЕД мотор (с)
      motor_c.setSpeed(HI_MOVE);
      motor_c.run(M_FORWARD);
      //digitalWrite(10, HIGH);
      //digitalWrite(11, LOW);
    break;
   
  case 0xD7://Код кнопки ВПЕРЕД мотор (д)
      motor_d.setSpeed(HI_MOVE);
      motor_d.run(M_FORWARD);
      //digitalWrite(10, LOW);
      //digitalWrite(11, HIGH);
    break;

  case 0x57://Код кнопки НАЗАД мотор(а)
      motor_a.setSpeed(HI_MOVE);
      motor_a.run(M_BACKWARD);
      //digitalWrite(10, HIGH);
      //digitalWrite(11, LOW);
    break;

  case 0x97://Код кнопки НАЗАД мотор (б)
      motor_b.setSpeed(HI_MOVE);
      motor_b.run(M_BACKWARD);
      //digitalWrite(10, LOW);
      //digitalWrite(11, LOW);
    break;

  case 0x17://Код кнопки НАЗАД мотор (с)
      motor_c.setSpeed(HI_MOVE);
      motor_c.run(M_BACKWARD);
      //digitalWrite(10, LOW);
      //igitalWrite(11, LOW);
    break;

  case 0xE7://Код кнопки НАЗАД мотор (д)
      motor_d.setSpeed(HI_MOVE);
      motor_d.run(M_BACKWARD);
      //digitalWrite(10, LOW);
      //digitalWrite(11, LOW);
    break;
  }
}

Re: Ошибка компилятора

RoninDev » 25 авг 2015, 16:16


Re: Ошибка компилятора

torresok » 25 авг 2015, 17:23

Добрый день! Да похоже. У меня сложился конфликт библиотек между servo и irremote. Таймер я менял с 2 на 1 в бибилиотеке irremote, когда она конфликтовала с afmotor. Теперь получается, ничего не сделать?


Rambler\'s Top100 Mail.ru counter