- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 3 von 3

Thema: Compilerfehler mit CTC Timer, Arduino Mega.

  1. #1
    Neuer Benutzer
    Registriert seit
    20.10.2014
    Ort
    Lörrach, Baden
    Beiträge
    4

    Compilerfehler mit CTC Timer, Arduino Mega.

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute,

    ich bin gerade dabei für eine Robotersteuerung einen Timer in meinen Scetch zu Integrieren.
    Als Vorlage habe ich die Anleitung von Heise unter: https://www.heise.de/developer/artik...s-3273309.html verwendet.
    Da Timer 1 der im Heise Beispiel scheinbar von der Servo Library benötigt wird, verwende ich Timer 3.
    Die Version mit dem Überlauf eines Timer-Registers funktioniert einwandfrei.
    Hier der Code:


    void setup()
    {
    ....
    noInterrupts();
    // Gem Heise:

    TCCR3A = 0;
    TCCR3B = 0;
    TCNT3 = 34286;
    TCCR3B |= (1 << CS12) | (1 << CS10);
    TIMSK3 = (1 << TOIE3);

    interrupts();
    ....
    }

    ISR(TIMER3_OVF_vect)
    {
    TCNT3 = 34286;
    ....
    }


    Verwende ich aber die CTC (Clear Timer on Compare Match) Methode,
    Hier der Code:


    void setup()
    {
    ....
    noInterrupts();
    // Gem Heise:
    TCCR3A = 0;
    TCCR3B = 0;
    TCNT3 = 0;
    OCR3A = 32150;
    TCCR3B |= (1 << CS12) | (1 << CS10);
    TIMSK3 = (1 << OCIE3A);

    interrupts(); // Alle Interrupts aktivieren
    ....
    }
    ISR(TIMER3_COMPA_vect)
    {
    ....
    }


    .. bekomme ich die folgende Fehlermeldung:

    Kompiliere ... Fertig!
    Kompiliert um: 16:19:18

    libraries\Servo\avr\Servo.cpp.o (symbol from plugin): In function `ServoCount':

    (.text+0x0): multiple definition of `__vector_32'

    sketch\Robot_2016_1_6.ino.cpp.o (symbol from plugin).text+0x0): first defined here

    c:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.9.2/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions

    collect2.exe: error: ld returned 1 exit status

    Mehrere Bibliotheken wurden für "IRremote.h" gefunden
    Benutzt: C:\Users\klaus\Documents\Arduino\libraries\IRremot e
    Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\RobotIRremote
    exit status 1
    Fehler beim Kompilieren für das Board Arduino/Genuino Mega or Mega 2560.

    Kann mir jemand Erklären was da los ist?

    Grüsse Klaus

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    1. Du hast die Bibliothek 2 mal auf dem Rechner. Das ist nicht schlimm, aber es wird beim Kompilieren immer eine Meldung ausgegeben, welche Bibliothek benutzt wurde.

    2. In der Servo-Bibliothek wird ISR(TIMER3_COMPA_vect) [Servo.cpp, Zeile 86ff] bereits definiert. Dann versuchst du es im Sketch ein zweites mal zu definieren, was nicht erlaubt ist.
    Die Servo-Bibliothek verwendet je nach Prozessor unterschiedliche und unterschiedlich viele Timer [siehe:ServoTimers.h, Zeile 34ff]. Die Bibliothek findest du unter: C:\Program Files (x86)\Arduino\libraries\Servo\src\avr.
    Wenn du es dir leicht machen willst, erweiterst du die Zeile #include <Servo.h> in deinem Sketch so:
    Code:
    #undef __AVR_ATmega2560__
    #include <Servo.h>
    #define __AVR_ATmega2560__
    Dann wird nur Timer1 benutzt und es können maximal 12 Servos verwendet werden.

  3. #3
    Neuer Benutzer
    Registriert seit
    20.10.2014
    Ort
    Lörrach, Baden
    Beiträge
    4
    Danke für den Tip!
    Gruß Klaus

Ähnliche Themen

  1. Arduino Mega mit LCD I2C
    Von Ezekiel im Forum Arduino -Plattform
    Antworten: 11
    Letzter Beitrag: 12.01.2016, 10:50
  2. Timer 0 Mega 16
    Von MasterMX im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 13
    Letzter Beitrag: 04.01.2010, 16:48
  3. 16bit-PWM mit Timer 1 (Mega 8)
    Von Sauerbruch im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 26.10.2007, 17:36
  4. BAscom Compilerfehler???
    Von darxon69 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.07.2007, 14:27
  5. AVR mega 16 Timer/Quarzprobleme
    Von Involut1 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 04.07.2004, 12:05

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress