void value not ignored as it ought to be
7 berichten
• Pagina 1 van 1
void value not ignored as it ought to be
Hoi,
Bij het inladen van mijn sketch krijg ik deze boodschap: void value not ignored as it ought to be
Wat kan er fout zijn?
dank je voor de hulp!
sketch hieronder
het gaat over een projectje om een boot aan te sturen via RC..
Het is bij het onderdeel van de ontvanger dat ik deze boodschap krijg.
mrcikes!
w@lter
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include <Servo.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
//
// Hardware configuration
//
Servo myservo;
// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
RF24 radio(9,10);
//
// Topology
//
// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
// Default Values
int servoPos = 92; // Steady point of the servo
void setup(void)
{
//
// Setup and configure rf radio
//
radio.begin();
// optionally, increase the delay between retries & # of retries
radio.setRetries(15,15);
// optionally, reduce the payload size. seems to
// improve reliability
radio.setPayloadSize(8);
//
// Open pipes to other nodes for communication
//
// This simple sketch opens two pipes for these two nodes to communicate
// back and forth.
// Open 'our' pipe for writing
// Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading)
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
//
// Start listening
//
radio.startListening();
//
// Dump the configuration of the rf unit for debugging
//
// The servo is attached to pin 2
myservo.attach(2);
// Start with the steady point of the servo
myservo.write(servoPos);
}
void receiveOrder()
{
// if there is data ready
if ( radio.available() )
{
// Dump the payloads until we've gotten everything
unsigned long message;
bool done = false;
while (!done)
{
// Fetch the payload, and see if this was the last one.
done = radio.read( &message, sizeof(unsigned long) );
// Use it
// The servo can only ake a value fro 0 to 180
if(message > 180) message = 180;
else if(message < 0) message = 0;
// Save the postion
servoPos = message;
// Write the position to the servo
myservo.write(servoPos);
}
// First, stop listening so we can talk
radio.stopListening();
// Send the final one back.
radio.write( &message, sizeof(unsigned long) );
// Now, resume listening so we catch the next packets.
radio.startListening();
}
}
void loop(void)
{
receiveOrder();
}
Bij het inladen van mijn sketch krijg ik deze boodschap: void value not ignored as it ought to be
Wat kan er fout zijn?
dank je voor de hulp!
sketch hieronder
het gaat over een projectje om een boot aan te sturen via RC..
Het is bij het onderdeel van de ontvanger dat ik deze boodschap krijg.
mrcikes!
w@lter
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include <SPI.h>
#include <Servo.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"
//
// Hardware configuration
//
Servo myservo;
// Set up nRF24L01 radio on SPI bus plus pins 9 & 10
RF24 radio(9,10);
//
// Topology
//
// Radio pipe addresses for the 2 nodes to communicate.
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
// Default Values
int servoPos = 92; // Steady point of the servo
void setup(void)
{
//
// Setup and configure rf radio
//
radio.begin();
// optionally, increase the delay between retries & # of retries
radio.setRetries(15,15);
// optionally, reduce the payload size. seems to
// improve reliability
radio.setPayloadSize(8);
//
// Open pipes to other nodes for communication
//
// This simple sketch opens two pipes for these two nodes to communicate
// back and forth.
// Open 'our' pipe for writing
// Open the 'other' pipe for reading, in position #1 (we can have up to 5 pipes open for reading)
radio.openWritingPipe(pipes[1]);
radio.openReadingPipe(1,pipes[0]);
//
// Start listening
//
radio.startListening();
//
// Dump the configuration of the rf unit for debugging
//
// The servo is attached to pin 2
myservo.attach(2);
// Start with the steady point of the servo
myservo.write(servoPos);
}
void receiveOrder()
{
// if there is data ready
if ( radio.available() )
{
// Dump the payloads until we've gotten everything
unsigned long message;
bool done = false;
while (!done)
{
// Fetch the payload, and see if this was the last one.
done = radio.read( &message, sizeof(unsigned long) );
// Use it
// The servo can only ake a value fro 0 to 180
if(message > 180) message = 180;
else if(message < 0) message = 0;
// Save the postion
servoPos = message;
// Write the position to the servo
myservo.write(servoPos);
}
// First, stop listening so we can talk
radio.stopListening();
// Send the final one back.
radio.write( &message, sizeof(unsigned long) );
// Now, resume listening so we catch the next packets.
radio.startListening();
}
}
void loop(void)
{
receiveOrder();
}
Advertisement
Re: void value not ignored as it ought to be
Die foutmelding zou voor kunnen komen als je iets vreemds doet met variabele argumenten. Aangezien je 'printf.h' gebruikt, zou het daar mee te maken kunnen hebben. Gebruik je die 'printf.h' ? Misschien kun je die even wegcommentariëren.
Ik zie geen fout in de code, maar je doet wel erg je best om de compiler in de war te brengen met de includes.
Dit zijn je includes, netjes op volgorde:
Een #include "RF24.h" (met dubbele aanhalingstekens) wordt meestal gebruikt om een *.h bestand van het eigen project te includen.
Een #include <RF24.h> (met kleiner-dan en groter-dan tekens) wordt meestal gebruikt om een library te includen.
Bij Arduino is dat verschil er nauwelijks, maar omdat het om libraries gaat, heeft de #include <RF24.h> de voorkeur. Dat voor de andere ook, en niet dubbel includen vanzelfsprekend.
Ik zie geen fout in de code, maar je doet wel erg je best om de compiler in de war te brengen met de includes.
Dit zijn je includes, netjes op volgorde:
- Code: Alles selecteren
#include <SPI.h>
#include <Servo.h>
#include <nRF24L01.h>
#include "nRF24L01.h"
#include <RF24.h>
#include "RF24.h"
#include <RF24_config.h>
#include <printf.h>
#include "printf.h"
Een #include "RF24.h" (met dubbele aanhalingstekens) wordt meestal gebruikt om een *.h bestand van het eigen project te includen.
Een #include <RF24.h> (met kleiner-dan en groter-dan tekens) wordt meestal gebruikt om een library te includen.
Bij Arduino is dat verschil er nauwelijks, maar omdat het om libraries gaat, heeft de #include <RF24.h> de voorkeur. Dat voor de andere ook, en niet dubbel includen vanzelfsprekend.
Re: void value not ignored as it ought to be
alvast bedankt
maar het probleem blijft zich voordoen met de sketch.
wat doe ik toch verkeerd ?
mvg
ontvanger_test_23_apr:84:14: error: void value not ignored as it ought to be
done = radio.read( &message, sizeof(unsigned long) );
^
exit status 1
void value not ignored as it ought to be
maar het probleem blijft zich voordoen met de sketch.
wat doe ik toch verkeerd ?
mvg
ontvanger_test_23_apr:84:14: error: void value not ignored as it ought to be
done = radio.read( &message, sizeof(unsigned long) );
^
exit status 1
void value not ignored as it ought to be
Re: void value not ignored as it ought to be
O, dat is eigenlijk heel duidelijk.
Weet je wat een "void" is ? Dat is een "niets", een "leegte", "noppes", "nada", "helemaal niks", "bestaat niet".
De radio.read() geeft niets terug. Er is geen return waarde.
Zie de read functie hier: https://github.com/nRF24/RF24/blob/master/RF24.h#L205.
De "void" vóór de functie naam geeft de return waarde aan, maar die is er dus niet want die is "void".
Die functie heeft een parameter "void* buf". Dat ligt iets anders. Dat is een pointer naar "iets", naar "zomaar wat", naar "zoek het lekker zelf uit". Het is dus wel een echte pointer.
Jij wil de return waarde toekennen aan een bool variabele. Maar er is niets om ergens aan toe te kennen.
Dus zegt de compiler: "Die functie heeft geen return waarde, dus de return waarde (die er niet is) behoort genegeerd te worden".
Als je weet waar het over gaat, dan is die melding van de compiler dus best wel duidelijk
Weet je wat een "void" is ? Dat is een "niets", een "leegte", "noppes", "nada", "helemaal niks", "bestaat niet".
De radio.read() geeft niets terug. Er is geen return waarde.
Zie de read functie hier: https://github.com/nRF24/RF24/blob/master/RF24.h#L205.
De "void" vóór de functie naam geeft de return waarde aan, maar die is er dus niet want die is "void".
Die functie heeft een parameter "void* buf". Dat ligt iets anders. Dat is een pointer naar "iets", naar "zomaar wat", naar "zoek het lekker zelf uit". Het is dus wel een echte pointer.
Jij wil de return waarde toekennen aan een bool variabele. Maar er is niets om ergens aan toe te kennen.
Dus zegt de compiler: "Die functie heeft geen return waarde, dus de return waarde (die er niet is) behoort genegeerd te worden".
Als je weet waar het over gaat, dan is die melding van de compiler dus best wel duidelijk
Re: void value not ignored as it ought to be
Hoi ,
Bedankt voor je klare uitleg, ik ben echter een complete leek en dit is dus voor mij... Chinees...
Wat moet ik dan aanpassen om de sketch te doen lopen?
vr gr
w@lter
Bedankt voor je klare uitleg, ik ben echter een complete leek en dit is dus voor mij... Chinees...
Wat moet ik dan aanpassen om de sketch te doen lopen?
vr gr
w@lter
Re: void value not ignored as it ought to be
Dit kan niet:
Dit kan wel:
De return waarde van radio.read() probeer je in de variabele 'done' te stoppen. Maar die functie heeft helemaal geen return waarde, want die is "void" en dat betekent "er is geen return waarde".
- Code: Alles selecteren
done = radio.read( &message, sizeof(unsigned long) );
Dit kan wel:
- Code: Alles selecteren
radio.read( &message, sizeof(unsigned long) );
De return waarde van radio.read() probeer je in de variabele 'done' te stoppen. Maar die functie heeft helemaal geen return waarde, want die is "void" en dat betekent "er is geen return waarde".
Re: void value not ignored as it ought to be
Ok ik probeer het deze avond als ik terug aan het "prutsen" ben!
alvast een "dikke merci"
w@lter
alvast een "dikke merci"
w@lter
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten