Arduino Nano 33 BLE

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od AstroMiK » 07 lis 2021, 17:31

Tak by mohl být problém ještě v přepočtu.
Střílím ale od boku, protože to nemám na čem vyzkoušet.

Zkus tohle:
prepocet.gif

---
Ta editace CPP souboru v poznámkovém bloku je normální.

A problém s chybovým hlášením objasnil kiRRow - privátní metoda "writeRegister" nejde volat z venku.
Navíc by to teda ani nevyřešilo problém s přepočtem.

monis2003
Příspěvky: 7
Registrován: 06 lis 2021, 12:21
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od monis2003 » 07 lis 2021, 17:55

Zkusila jsem a bohužel, ani přepis v přepočtu nepomohl.

peterple
Příspěvky: 156
Registrován: 22 zář 2021, 20:20
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od peterple » 07 lis 2021, 17:55

Ospravedlňujem sa za blbú radu. Objektové C tiež nie je moja silná stránka. Len sa mi zdá že tu už pomaly ide o to nepoužívať takto jednostranne napísanú knižnicu a radšej si to celé riešiť sám. Čo je ale zase problém pre začiatočníka. Taký malý bludný kruh.

monis2003
Příspěvky: 7
Registrován: 06 lis 2021, 12:21
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od monis2003 » 07 lis 2021, 18:24

Ano, vše podle popisu.

Složka s programem a upravovanou knihovnou
fotka 1.png
fotka 1.png (5.97 KiB) Zobrazeno 3585 x
Upravovaný soubor cpp
fotka 2.png
fotka 2.png (8.5 KiB) Zobrazeno 3585 x
Uvozovky místo hranatých závorek

Kód: Vybrat vše

#include <ArduinoBLE.h>
#include "Arduino_LSM9DS1.h"

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od AstroMiK » 07 lis 2021, 18:29

CHYBA - mažu příspěvek ...
Naposledy upravil(a) AstroMiK dne 07 lis 2021, 18:43, celkem upraveno 2 x.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od AstroMiK » 07 lis 2021, 18:39

... tak tohle taky nevyšlo - SORRY.

Vykašlete se na kopii knihovny. Nechte původní špičaté závorky a upravte originální soubor CPP ve složce "libraries".

monis2003
Příspěvky: 7
Registrován: 06 lis 2021, 12:21
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od monis2003 » 07 lis 2021, 18:53

Děkuju vám moc, už to funguje.

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od AstroMiK » 07 lis 2021, 18:59

Skvělé.

KiRRow, prosím, pojď nám ještě trochu vysvětlit, jak je to s těmi kopiemi knihoven ve složce projeku.
Zkoušel jsem to v několika verzích zápisu, ale pořád si to importovalo tu originální knihovnu ve složce ".../libraries/"

Zatím jsem to nikdy nepotřeboval, ale někdy by se to mohlo hodit.

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Arduino Nano 33 BLE

Příspěvek od kiRRow » 07 lis 2021, 19:54

Pokud jméno souboru dám do ostrých závorek <jmeno.h> ,tak tento soubor bude kompilátor hledat nejprve v systémových složkách ( nejsem jsi jistý pořadím, ale logicky bych tipnul složku kde je samotné IDE a pak až dokumenty - a pokud nalezne v obou ten samý soubor, bude to hlásit varování, že má duplicitní knihovny) ... no a někdy to nakonec zkusí i ve složce s kompilovaným programem ( to jsem fakt nezkoušel jak moc je to vzdornýblbu )

Pokud jméno souboru dám do uvozovek "jmeno.h", tak tento soubor bude kompilátor hledat ve složce, kde je kompilovaný program a pak (né vždy musí) zkusí složky s knihovnami

Příklad z praxe :

Knihovna obsluhující rotační enkodér. Nebyl sní problém v několika zařízení, do doby, kdy jsem ji chtěl použít pro hru. Jen pro určitou situaci jsem musel tu knihovnu upravit (reagovalo to pomalu na dvojklik a držení), řešení je tedy pořídit kopii, tu upravit a tu pak kompilovat do jednoho jediného projektu. Nebo ji přepisovat dokola tam a zpátky ? ...

AstroMiK
Příspěvky: 592
Registrován: 08 pro 2017, 19:05
Reputation: 0

Re: Arduino Nano 33 BLE

Příspěvek od AstroMiK » 07 lis 2021, 21:15

Díky za nasměrování. Asi na 6. pokus se to povedlo.

Postup plný neúspěchů:
----------------------------------

Zkopíroval jsem celou složku "Arduino_LSM9DS1" včetně dokumentace a příkladů do složky projektu (tam, jak je soubor .ino).

-------------
V prvním kroku jsem zkompiloval program, který měl knihovnu ve špičatých závorkách - všechno v pořádku, ale vkládala se originální knihovna ze složky "libraries".

-------------

Ve druhém kroku jsem celou originální složku "Arduino_LSM9DS1" z "libraries" smazal a v programu jsem změnil špičaté závorky za uvozovky

Kód: Vybrat vše

#include "Arduino_LSM9DS1.h"
Výsledek:
" ... fatal error: Arduino_LSM9DS1.h: No such file or directory .... "


-------------

Třetí pokus bylo uvedení celé (relativní) cesty k souboru "Arduino_LSM9DS1.h"

Kód: Vybrat vše

#include "Arduino_LSM9DS1\src\Arduino_LSM9DS1.h"

Knihovnu to sice našlo, ale chyb tam byla spousta:
sketch\acc.ino.cpp.o: In function `setup':
D:\acc/acc.ino:18: undefined reference to `LSM9DS1Class::begin()'
D:\acc/acc.ino:25: undefined reference to `LSM9DS1Class::begin()'
D:\acc/acc.ino:49: undefined reference to `IMU'
sketch\acc.ino.cpp.o: In function `updateAccelerationLevel()':
D:\acc/acc.ino:75: undefined reference to `LSM9DS1Class::accelerationAvailable()'
D:\acc/acc.ino:76: undefined reference to `LSM9DS1Class::readAcceleration(float&, float&, float&)'
D:\acc/acc.ino:95: undefined reference to `IMU'
collect2.exe: error: ld returned 1 exit status
exit status 1
Nastala chyba při kompilaci u desky Arduino Nano 33 BLE.

Zkusil jsem i obyčejná lomítka do cesty, ale se stejným výsledkem:

Kód: Vybrat vše

#include "Arduino_LSM9DS1/src/Arduino_LSM9DS1.h"

Pak následovala absolutní cesta:

Kód: Vybrat vše

#include "d:\acc\Arduino_LSM9DS1\src\Arduino_LSM9DS1.h"
... stejný výsledek


Zkusil jsem nahradit zpětné lomítko dvěma zpětnými lomítky
(někde jsem to takhle viděl, ale už si nepamatuju, co to bylo za programovací jazyk)

Kód: Vybrat vše

#include "d:\\acc\\Arduino_LSM9DS1\\src\\Arduino_LSM9DS1.h"
... beze změny - pořád stejné chyby




-------------

Až teprve poslední pokus, když jsem zkopíroval jen ty 3 soubory .CPP a .H přímo do složky k souboru .ino a všechno ostatní jsem odstranil (dokumentace, příklady ... ), tak kompilace proběhla úspěšně.

Kód: Vybrat vše

#include "Arduino_LSM9DS1.h"

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 9 hostů