Arduino Nano 33 BLE
Re: Arduino Nano 33 BLE
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:
---
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.
Střílím ale od boku, protože to nemám na čem vyzkoušet.
Zkus tohle:
---
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
Zkusila jsem a bohužel, ani přepis v přepočtu nepomohl.
Re: Arduino Nano 33 BLE
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
Ano, vše podle popisu.
Složka s programem a upravovanou knihovnou Upravovaný soubor cpp Uvozovky místo hranatých závorek
Složka s programem a upravovanou knihovnou Upravovaný soubor cpp Uvozovky místo hranatých závorek
Kód: Vybrat vše
#include <ArduinoBLE.h>
#include "Arduino_LSM9DS1.h"
Re: Arduino Nano 33 BLE
CHYBA - mažu příspěvek ...
Naposledy upravil(a) AstroMiK dne 07 lis 2021, 18:43, celkem upraveno 2 x.
Re: Arduino Nano 33 BLE
... 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".
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
Děkuju vám moc, už to funguje.
Re: Arduino Nano 33 BLE
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.
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
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 ? ...
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
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
Výsledek:
-------------
Třetí pokus bylo uvedení celé (relativní) cesty k souboru "Arduino_LSM9DS1.h"
Knihovnu to sice našlo, ale chyb tam byla spousta:
Zkusil jsem i obyčejná lomítka do cesty, ale se stejným výsledkem:
Pak následovala absolutní cesta:
... 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)
... 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ě.
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"
" ... 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"
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"
-------------
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"
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti