Stránka 2 z 2

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 17:31
od AstroMiK
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.

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 17:55
od monis2003
Zkusila jsem a bohužel, ani přepis v přepočtu nepomohl.

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 17:55
od peterple
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.

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 18:24
od monis2003
Ano, vše podle popisu.

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

Kód: Vybrat vše

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

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 18:29
od AstroMiK
CHYBA - mažu příspěvek ...

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 18:39
od AstroMiK
... 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".

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 18:53
od monis2003
Děkuju vám moc, už to funguje.

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 18:59
od AstroMiK
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.

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 19:54
od kiRRow
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 ? ...

Re: Arduino Nano 33 BLE

Napsal: 07 lis 2021, 21:15
od AstroMiK
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"