Software.Serial.h und PPm.h Arduino-Drohne

Hallo
Ich programmiere schon länger an meiner Drohne einem "HexaCopter".
welche nun auch in der Lage ist ihre Fluglage selbstständig zu halten.
Die Rc -Steuerung lese ich über PPM.h ein ,
Jetzt wollte ich das ganze mit Gps erweitern ,
Wozu ich auch die SoftwareSerial.h benötige

#include<SoftwareSerial.h>
#include <ppm.h>

Was zu folgender fehlermeldung führt:


Arduino: 1.8.19 (Windows 7), Board: "Arduino Uno"
libraries\PPM-1.1.3\pcint.cpp.o (symbol from plugin): In function `port_to_pcmask':

(.text+0x0): multiple definition of __vector_3' libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here libraries\PPM-1.1.3\pcint.cpp.o (symbol from plugin): In function port_to_pcmask':
(.text+0x0): multiple definition of __vector_4' libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here libraries\PPM-1.1.3\pcint.cpp.o (symbol from plugin): In function port_to_pcmask':
(.text+0x0): multiple definition of `__vector_5'
libraries\SoftwareSerial\SoftwareSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Fehler beim Kompilieren für das Board Arduino Uno.


So wie ich es verstehe also eine mehrfache definition von der variable "vector"
Ich bin jetzt im Augenblick mit meinem Latein am ende..
für Hinweise /Ratschläge wäre ich dankbar

So ist es!
beide Libs verwenden PCINT

Mein Rat:
Kundig machen und selber Hand anlegen.
Dann ist sicherlich beides machbar/vereinbar.

Evtl kannst du auch eine der beiden Libs auf Hardware Interrupts umstellen.
Zumindest bei der PPM Lib scheint das recht leicht machbar.

combie.
Ich dank dir für deine Info,..
also hab ich 2 Möglichkeiten
1, in einer Datei nur global definieren oder
2. mit z.b HardwareSerial.h das Ppm -Signal einlesen

Beide Möglichkeiten verstehe ich nicht!
KA, was du dir da vorstellst.......

Nochmal, meine Ansage:
Die PPM Lib scheint dafür vorbereitet zu sein, ohne PCINT arbeiten zu können.
Diese Chance solltest du ergreifen, würde ich mal sagen.

ok... Du meist also das ich das PCINT in der ppm.h b.z.w in der ppm.cpp einfach ausklammere ?

Die pcint.* Dateien aus der Lib entfernen und in ppm.cpp diese Änderung machen:


#include <Arduino.h>
#include "ppm.h"
// #include "pcint.h"
#include "avr/interrupt.h"

// #define USE_PCINT

ohne Gewähr

Dann allerdings hast du keine freie Pinwahl mehr.
Es gehen dann nur noch Pin 2 oder 3 für PPM

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.