Marceltck Napisano Luty 1, 2017 Udostępnij Napisano Luty 1, 2017 Kiedyś działał mi ten kod, a teraz wyskakuje jakiś błąd i z tego co widzę w arduino nie podświetla mi się zmienna bool. Co może być tego powodem? Testowane na 2 komputerach z różnymi IDE. Poniżej kod ale podświetla tylko to ->>>> done = radio.read(msg, 1); #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" int msg[1]; RF24 radio(9,10); const uint64_t pipe = 0xE8E8F0F0E1LL; int LED1 = 3; void setup() { Serial.begin(9600); radio.begin(); radio.openReadingPipe(1,pipe); radio.startListening(); pinMode(LED1, OUTPUT); } void loop() { if (radio.available()) { bool done = false; while (!done){ done = radio.read(msg, 1); Serial.println(msg[0]); if (msg[0] == 111) { delay(10); digitalWrite(LED1, HIGH); } else {digitalWrite(LED1, LOW); } delay(10);}} else { Serial.println("Radio nie dostępne"); } } a problem wyskakuje taki. Arduino:1.8.1 (Windows 8.1), Płytka:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)" C:\Users\Marcinek\Desktop\Robot\Nadajnik\Nadajnik.ino: In function 'void loop()': Nadajnik:24: error: void value not ignored as it ought to be done = radio.read(msg, 1); ^ Znaleziono wiele bibliotek w "SPI.h" Wykorzystane: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI Niewykorzystane: C:\Program Files (x86)\Arduino\libraries\SPI exit status 1 void value not ignored as it ought to be Ten raport powinien zawierać więcej informacji jeśli w File -> Preferencje zostanie włączona opcja "Pokaż szczegółowe informacje podczas kompilacji"
Elvis Luty 1, 2017 Udostępnij Luty 1, 2017 Marceltck, korzystasz z biblioteki RF24, ale nie napisałeś co to za biblioteka, jaka wersja i skąd pobrana. Bez takich informacji ciężko jest cokolwiek pomóc. Prawdopodobnie metoda read() zwraca typ void, jest tak np. Tutaj http://tmrh20.github.io/RF24/classRF24.html Dlaczego wcześniej działało, ciężko stwierdzić. Może inna biblioteka zwracała bool, a może starsza wersja kompilatora nie wykrywała błędu. Sprawdź jak wygląda sygnatura metody read w Twojej bibliotece, jeśli zwraca void zagadka jest rozwiązana.
Marceltck Luty 1, 2017 Autor tematu Udostępnij Luty 1, 2017 Czyli to może być kwestia złej biblioteki RF24? kurcze dziwne bo wydaje mi się że cały czas korzystam z tej samej wgle to nawet pobrałem z miejsca gdzie pisał ten artykuł sam autor. http://roboblog.eu/2016/03/12/nrf24l01/ u niego w tekscie właśnie widać że bool jest podkreślone u mnie nie. Poza tym coś w błędach wyskoczyło że z biblioteką SPI jest coś nie halo
Elvis Luty 1, 2017 Udostępnij Luty 1, 2017 To dużo wyjaśnia. Biblioteka definuje read() bez zwracania wartości: void read( void* buf, uint8_t len ); Pewnie starsza wersja kompilatora (gcc) to tolerowała i program jakoś działał. W nowszej wersji Arduino dali poprawiony gcc i przestało. Wniosek z tego jest taki: nie każdy program, który działa jest poprawny. Wniosek nr 2: nie wszystko co znajdziemy w sieci to prawda. Niestety teraz każdy może założyć stronę, albo bloga i wypisywać tam dowolne bzdury
Marceltck Luty 2, 2017 Autor tematu Udostępnij Luty 2, 2017 tzn ja korzystałem już z tego kodu z powodzeniem. Chciałem go zrobić sobie jeszcze raz zeby upewnić się czy mi nrfy działąją a tu psikus nawet nie moge skompilowac
Elvis Luty 2, 2017 Udostępnij Luty 2, 2017 To trochę jakby napisać - zawsze jeździłem 100km/h po mieście i było dobrze, a teraz dostałem mandat, dlaczego? Program był od początku niepoprawny, a że dziłał to zupełnie inna sprawa.
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »