Stránka 1 z 2
Chyba při překladu Arduino *vyřešeno*
Napsal: 27 čer 2021, 14:07
od hafca
Potřebuji nějak naladit AS3935, protože nemám číslo, které mělo být údajně na sáčku ve kterém byl. Při překladu testovacího souboru se mi objeví chyba se kterou jsem se potkal několikrát z různých zdrojů. Jednou jsou to čísla, jindy proměnné.
Nemůžu přijít na to, kde je chyba.
no matching function for call to 'AS3935::AS3935(byte (&)(byte), int, int)'
Začátek kódu
#include <SPI.h>
#include <AS3935.h>
void printAS3935Registers();
byte SPItransfer(byte sendByte);
void AS3935Irq();
volatile int AS3935IrqTriggered;
/*první argument: Funkce přenosu SPI
druhý argument: pin použitý pro CS
třetí argument: pin použitý pro IRQ
*/
AS3935 AS3935(SPItransfer,10,1);
Napsal: 27 čer 2021, 15:30
od samec
máš tušenie, čo robíš?
Napsal: 27 čer 2021, 15:34
od hafca
Ptáš se proto, že taky nevíš?
Je to začátek kódu z internetu, jak už jsem psal. Takže to není moje práce. Jen jsem snažil o překlad, protože jsem předpokládal, že když někdo něco uveřejní, tak to sám odzkoušel.
Napsal: 27 čer 2021, 16:04
od jezevec
Vyzkoušej starší verze překladače, to samé mi dělalo při oživování 3D tiskárny.
Napsal: 27 čer 2021, 16:14
od hafca
Zkusil jsem 1.6.5 a je to stejné.
V programování nejsem zběhlý, zvládnu malé úpravy, ale tady se nechytám. Ale tuším, že jako vždy bude chyba mezi židlí a klávesnicí.
Napsal: 27 čer 2021, 16:20
od bdn
link na knihovnu AS3935?
Je možné, že předané argumenty nepasují s definicí funkce.
Napsal: 27 čer 2021, 16:37
od hafca
Marnost nad marnost. Při laborování s knihovnami se objevily jiné chyby a nakonec to zase skončilo na té samé.
Napsal: 27 čer 2021, 16:40
od Standa33
Napsal: 27 čer 2021, 16:46
od hafca
Tam jsem byl, u SPI ta samá chyba. A I2C mi nejde. Test na adreu nenajde žádné zařízení.
Napsal: 27 čer 2021, 17:07
od samec
jezevec píše:Vyzkoušej starší verze překladače
A čo tak skúsiť nejaké povery a pranostiky?
Na štvrtom riadku máš deklaráciu funkcie SPItransfer s nejakými paramerami.
V poslednom riadku vkladáš smernik na túto funkciu do inej funkcie, ale kde sú parametre? Čo tým chcel básnik povedať?
Máš tušenie, čo robíš?
Napsal: 27 čer 2021, 17:13
od hafca
A ty víš co s tím?
Co tím chtěl básník říct opravdu nevím. Já to nebyl, ale to už jsem psal. A že tohle moc neumím, to jsem psal taky. Proto jsem se tady odvážil zeptat a čekal jsem nějakou konkrétní radu.
Napsal: 27 čer 2021, 17:53
od samec
Bez serióznej dokumentácie k tej knižnici s vyčerpávajúcim popisom jednotlivých funkcií, objektov, metód a spôsobu implementácie skôr vyhráš v športke, než rozchodíš ten kód.
Napsal: 27 čer 2021, 18:02
od Standa33
/*první argument: Funkce přenosu SPI
druhý argument: pin použitý pro CS
třetí argument: pin použitý pro IRQ
*/
AS3935 AS3935(SPItransfer,10,1); tohle je nějaká blbost
V knihovně AS3935.h je tato definice:
AS3935(int8_t CSx, int8_t IRQx, int8_t SIx);
/*první argument: Funkce přenosu CS
druhý argument: pin použitý pro IRQ
třetí argument: pin použitý pro SPI
*/
Napsal: 27 čer 2021, 18:45
od hafca
Je to nějaký binec v knihovnách. Konkrétně v té AS3935. Našel sem jich několik a s každou to dělá jiné chyby.
Budu muset hledat, dokud nenajdu nějakou co funguje.
Dík za snahu pomoci.
Napsal: 30 čer 2021, 22:59
od h_honza
První argument má být podle komentáře "funkce přenosu" a přitom v deklaraci je int8_t, což je asi byte. V programu je první argument typu byte (&)(byte), což odkaz na funkci je. Takže mám za to, že zbordelený je ten knihovní header.