PDA

Επιστροφή στο Forum : ανεβασμα κωδικα απο .cpp αρχειο σε arduino



finos
25-03-18, 17:18
για σας
προσπαθω να ανεβασω ένα project στο Arduino αλλα ο κωδικας που βρικα είναι σε αρχεια .cpp και .H το project είναι ξεκάθαρα γραμενο για Arduino αφου εχει μεσα εντολες PinMode και digitalwrite που από οτο ξερω είναι στο Arduino (σε καθατη c++ δουλεύουμε portx register commands )
εδώ : https://github.com/ptsneves/FrSkyTelemetry ο κωδικας
το mondule (https://www.airborneprojects.com/product/apm-mavlink-to-frsky-smartport-converter/) είναι ένα Arduino nano κι πρωσπαθω να ανεβασω τον κωδικα του σε ένα άλλο nano για χρηση σε ένα άλλο drone
αυτό πως θα το κανω ?
με απλη αντηγραφη του main cpp σε ένα ino ειχε πολα λαθη

Fire Doger
25-03-18, 17:37
Γιατί η wiring δεν είναι καθαρή C++? Έχει και λίγο java μέσα?:lool:

Άμα τα διάβαζες αυτά τα ρημάδια τα λάθη που στα εμφανίζει για να τα διαβάσεις ή τα έστελνες εδώ θα ξέραμε.
Η μαγική σφαίρα προς το παρών δεν εμφανίζει κάτι...

kioan
25-03-18, 17:40
Εν συντομία επειδή είμαι με κινητό:

Σπάσε την main() σε δυο αλλες συναρτήσεις που θα τις ονομάσεις setup() και loop() οπως περιμένει το arduino.

Στην loop() βαλε τα περιεχόμενα απο το while(1) {...} και στην setup() τις αρχικοποιήσεις που ειχε πιο πριν.

Επίσης απο το αρχείο που θα μετονομάσεις σε .ino αφαίρεσε την πρώτη γραμμή του έχει το #include "Arduino.h"

Sent using Tapatalk

finos
25-03-18, 17:46
παιδια ευχαριστω για τις πολυ γρήγορες απαντησεις σας . κι συγνομη για την "μαγηκη σφαιρα" που δεν εδωσα εξτρα πληροφοριες .
με verbose output :

D:\OneDrive\arduino-1.8.3(ide)\arduino-builder -dump-prefs -logger=machine -hardware D:\OneDrive\arduino-1.8.3(ide)\hardware -tools D:\OneDrive\arduino-1.8.3(ide)\tools-builder -tools D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr -built-in-libraries D:\OneDrive\arduino-1.8.3(ide)\libraries -libraries D:\files\New folder (4)\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10803 -build-path C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216 -warnings=all -build-cache C:\Users\bagge\AppData\Local\Temp\arduino_cache_53 5572 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=D:\OneDrive\ar duino-1.8.3(ide)\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\OneDrive\ardui no-1.8.3(ide)\hardware\tools\avr -verbose D:\files\New folder (3)\frsky\frsky.ino
D:\OneDrive\arduino-1.8.3(ide)\arduino-builder -compile -logger=machine -hardware D:\OneDrive\arduino-1.8.3(ide)\hardware -tools D:\OneDrive\arduino-1.8.3(ide)\tools-builder -tools D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr -built-in-libraries D:\OneDrive\arduino-1.8.3(ide)\libraries -libraries D:\files\New folder (4)\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10803 -build-path C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216 -warnings=all -build-cache C:\Users\bagge\AppData\Local\Temp\arduino_cache_53 5572 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avr-gcc.path=D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr -prefs=runtime.tools.arduinoOTA.path=D:\OneDrive\ar duino-1.8.3(ide)\hardware\tools\avr -prefs=runtime.tools.avrdude.path=D:\OneDrive\ardui no-1.8.3(ide)\hardware\tools\avr -verbose D:\files\New folder (3)\frsky\frsky.ino
Using board 'uno' from platform in folder: D:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr
Using core 'arduino' from platform in folder: D:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr
Detecting libraries used...
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\frsky.ino.cpp" -o "nul"
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\FrSkyProcessor.cpp" -o "nul"
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\MavlinkProcessor.cpp" -o "nul"
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\SoftwareSerial.cpp" -o "nul"
Generating function prototypes...
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\frsky.ino.cpp" -o "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\preproc\ctags_target_for_gcc_minus_e.cpp"
"D:\OneDrive\arduino-1.8.3(ide)\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"D:\OneDrive\arduino-1.8.3(ide)\hardware\tools\avr/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10803 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\cores\arduino" "-ID:\OneDrive\arduino-1.8.3(ide)\hardware\arduino\avr\variants\standard" "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\FrSkyProcessor.cpp" -o "C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\FrSkyProcessor.cpp.o"
C:\Users\bagge\AppData\Local\Temp\arduino_build_30 216\sketch\FrSkyProcessor.cpp: In constructor 'FrSkyProcessor::FrSkyProcessor(const FrSkyProcessor::SerialId&, uint8_t)':
FrSkyProcessor.cpp:86: error: 'UART0_C3' was not declared in this scope
UART0_C3 = 0x10;
^
FrSkyProcessor.cpp:87: error: 'UART0_C1' was not declared in this scope
UART0_C1 = 0xA0;
^
FrSkyProcessor.cpp:88: error: 'UART0_S1' was not declared in this scope
UART0_S1 = 0x10;
^
exit status 1
'UART0_C3' was not declared in this scope


να σας πω ότι δεν εγραψα εγω αυτόν τον κωδικα @kioan ναι αυτό ακριβως εκανα

Fire Doger
25-03-18, 17:54
Έτρεξε με τις αλλαγές του Γιάννη?

finos
25-03-18, 18:39
όχι αυτό που ειπε ο kioan ειχα κανει από την αρχη αλλα τπτ . εχω σε έναν φακελο το .ino οπου εχιε τα περιεχομενα του main και μετα στον ιδιο φακελο εχω τα .cpp κι τα .h που είναι included .

δειτε τα λιγο στο zip 73011

nkarama
26-03-18, 11:37
Το project που δίνεις είναι μια κλάση. Δεν είναι φτιαγμένο για να τρέχει αυτόνομα σε ένα arduino sketch.
Μπορείς να το δεις κάτι σαν βιβλιοθήκη. Οπως τις βιβλιοθήκες τις εισάγεις σε ένα sketch για να τις χρησιμοποιήσεις, έτσι μπορείς/πρέπει να κάνεις με μια κλάση. Να την κάνεις instantiate κα να τηςχρησιμοποιήσεις μέσα στ sketch.

Εδιτ: τώρα είδα ότι έχει και main αλλά και make file. Οπότε ψάξε και μάθε πώς να χρησιμοποιήσεις τον GCC για να φτιάξεις ένα .hex για τον ATMEGA328 και μετά πως να το ρίξεις πάνω του με τον AVRDUDE.

Εδιτ2: mavlink και FRSky... κάποτε με είχε μπλέξει ο κουμπάρος μου για να του φτιάχνω custom τηλεμετρία (απο διάφορους sensors πάνω στο UAV)) και να τους βλέπει στο Ground Control Station .... μεγάλο μπλέξιμο, ειδικά πριν 6 χρόνια που δεν υπήρχε documentation για τίποτα. Απέτυχα big time!!!!

finos
26-03-18, 14:15
μα αυτό δουλεύειείναι κι έτοιμο προϊόν κι μάλιστα Open source κι σκεπτικά αν τοεκμεταλλευτώ για να βάλω κι στο άλλο σκάφος που εχω κι να μην χρειαστώ να δώσω40Ε ξανά και ξανά αφού μπορώ να δεινω 1-1,5Ε για Arduino Nano .
both το κατάφερανα το βάλω σε ino κι να παίξεισωστά. τωρα πάω να το "κάψω" σε ένα Uno για να το δοκιμάσω
αν δουλέψει σκεπτικάνα το κάνω pull request για merge στην Main με αναφορά σε εσάς για την βοήθεια:wiink: