roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 18:20

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Ошибка компилятора
СообщениеДобавлено: 25 авг 2015, 16:10 
Не в сети

Зарегистрирован: 22 мар 2015, 19:51
Сообщения: 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: Ошибка компилятора
СообщениеДобавлено: 25 авг 2015, 16:16 
Не в сети
Аватара пользователя

Зарегистрирован: 22 янв 2015, 10:33
Сообщения: 207
прог. языки: kotlin, golang, java, c#
http://letsmakerobots.com/content/solve ... tion-error не то же самое?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Ошибка компилятора
СообщениеДобавлено: 25 авг 2015, 17:23 
Не в сети

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO