springen naar andere regel
18 berichten
• Pagina 1 van 2 • 1, 2
springen naar andere regel
Als beginneling krijg ik het springen naar "routine" of naar "void loop" niet voor elkaar.
De foutboodschap is label routine/loop used but not defined
Hieronder een deel van mijn programma met de if else.
void loop()
{
digitalRead(In_Pin);
if(In_Pin = HIGH) goto Routine;
delay; 3000
else goto loop;
}
Routine
{
digitalWrite; (1,HIGH);//high rodefoon
delay 3000;
etc.etc.
Kan iemand me helpen?
De foutboodschap is label routine/loop used but not defined
Hieronder een deel van mijn programma met de if else.
void loop()
{
digitalRead(In_Pin);
if(In_Pin = HIGH) goto Routine;
delay; 3000
else goto loop;
}
Routine
{
digitalWrite; (1,HIGH);//high rodefoon
delay 3000;
etc.etc.
Kan iemand me helpen?
Advertisement
Re: springen naar andere regel
Ik ben ook nog niet zo bedreven, maar functies zullen zover ik weet eerst gedeclareerd moeten worden en daarna gedefinieerd. Ik heb veel gehaald uit onderstaande link. Daar staat ook beschreven hoe je functies maakt.
http://www.tutorialspoint.com/cprogramming/index.htm
Succes.
Gr., Hans
http://www.tutorialspoint.com/cprogramming/index.htm
Succes.
Gr., Hans
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: springen naar andere regel
rikblok schreef:Als beginneling krijg ik het springen naar "routine" of naar "void loop" niet voor elkaar.
De foutboodschap is label routine/loop used but not defined
Hieronder een deel van mijn programma met de if else.
void loop()
{
digitalRead(In_Pin);
if(In_Pin = HIGH) goto Routine;
delay; 3000
else goto loop;
}
Routine
{
digitalWrite; (1,HIGH);//high rodefoon
delay 3000;
etc.etc.
Kan iemand me helpen?
Ik zou eerst De C taal een beetje leren (tutorials zat)
Het is geen basic...
Verder zou ik eens goed kijken naar de tutorials die bijgeleverd zijn. Het is zinloos om hier commentaar op te leveren. Zo ongeveer elk statement is fout....
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: springen naar andere regel
McNes schreef:Ik ben ook nog niet zo bedreven, maar functies zullen zover ik weet eerst gedeclareerd moeten worden en daarna gedefinieerd. Ik heb veel gehaald uit onderstaande link. Daar staat ook beschreven hoe je functies maakt.
http://www.tutorialspoint.com/cprogramming/index.htm
Succes.
Gr., Hans
Hoewel het een goede gewoonte is heb je bij de Arduino IDE hier geen last van. Zodra je met de betere IDE's en compilers gaat werken, vliegen inderdaad de fouten om je oren.
Re: springen naar andere regel
nicoverduin schreef:rikblok schreef:Als beginneling krijg ik het springen naar "routine" of naar "void loop" niet voor elkaar.
De foutboodschap is label routine/loop used but not defined
Hieronder een deel van mijn programma met de if else.
void loop()
{
digitalRead(In_Pin);
if(In_Pin = HIGH) goto Routine;
delay; 3000
else goto loop;
}
Routine
{
digitalWrite; (1,HIGH);//high rodefoon
delay 3000;
etc.etc.
Kan iemand me helpen?
Ik zou eerst De C taal een beetje leren (tutorials zat)
Het is geen basic...
Verder zou ik eens goed kijken naar de tutorials die bijgeleverd zijn. Het is zinloos om hier commentaar op te leveren. Zo ongeveer elk statement is fout....
Dat is juist het probleem, ik ken een beetje basic.
U kunt aardig overdrijven en een beginner mag kennelijk geen vragen stellen.
Ik heb al een paar tutorials doorgenomen, maar vindt geen uitleg over het definieren van zelf gemaakte functies
Re: springen naar andere regel
ach ja zo is nico,
ja is duidelijk dat je basic hebt gezien.
doe onder help maar eens op reference klikken, dan gaat er een wereld open.
ook een aanrader is een cheatsheet. (gebruik ik ook nog steeds hoor.
als je iets opstuurt zet het dan tussen code want dat maakt het voor on goed leesbaar.
als je begint dan kom je eerst een setup() tegen
en dan een loop()
in de setup zet je de uitgangen in de goede modus, dat er inderdaad wat uit komt, een serial poort met Serial.begin(9600) is er zo een.
dan komt het programma in de loop() terecht waar het blijft lopen tot de voeding eraf gehaald wordt.
in de loop kun je andere functions aanroepen door functienaam(variabelen)
goto is net als in basic een noodding en moet echt vermeden worden. kijk naar break
een aanroep is een gosub zoals je ook wel geleerd hebt.
een functie moet natuurlijk ook beschreven staan en dus
void functienaam(int variabele){
dan alle berekeningen en afsluiten met een }
en ach nico heeft wel gelijk hoor, met kijk eerst eens in de boeken, maar tegenwoordig is een antwoord krijgen via internet veel sneller, en handiger.
delay is trouwens ook een functie (maar die zit gewoon in de firmware) dus aanroep met delay(3000);
de volgende keer je programma maken zonder delay maar met een timer (millis()) is de volgende leeropdracht.
ja is duidelijk dat je basic hebt gezien.
doe onder help maar eens op reference klikken, dan gaat er een wereld open.
ook een aanrader is een cheatsheet. (gebruik ik ook nog steeds hoor.
als je iets opstuurt zet het dan tussen code want dat maakt het voor on goed leesbaar.
als je begint dan kom je eerst een setup() tegen
en dan een loop()
in de setup zet je de uitgangen in de goede modus, dat er inderdaad wat uit komt, een serial poort met Serial.begin(9600) is er zo een.
dan komt het programma in de loop() terecht waar het blijft lopen tot de voeding eraf gehaald wordt.
in de loop kun je andere functions aanroepen door functienaam(variabelen)
goto is net als in basic een noodding en moet echt vermeden worden. kijk naar break
een aanroep is een gosub zoals je ook wel geleerd hebt.
een functie moet natuurlijk ook beschreven staan en dus
void functienaam(int variabele){
dan alle berekeningen en afsluiten met een }
en ach nico heeft wel gelijk hoor, met kijk eerst eens in de boeken, maar tegenwoordig is een antwoord krijgen via internet veel sneller, en handiger.
delay is trouwens ook een functie (maar die zit gewoon in de firmware) dus aanroep met delay(3000);
de volgende keer je programma maken zonder delay maar met een timer (millis()) is de volgende leeropdracht.
paul deelen
shooter@home.nl
shooter@home.nl
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: springen naar andere regel
Ik denk dat je beter eerst kan leren staan voordat je probeert te lopenshooter schreef:de volgende keer je programma maken zonder delay maar met een timer (millis()) is de volgende leeropdracht.
Re: springen naar andere regel
shooter schreef:ach ja zo is nico,
ja is duidelijk dat je basic hebt gezien.
doe onder help maar eens op reference klikken, dan gaat er een wereld open.
ook een aanrader is een cheatsheet. (gebruik ik ook nog steeds hoor.
als je iets opstuurt zet het dan tussen code want dat maakt het voor on goed leesbaar.
als je begint dan kom je eerst een setup() tegen
en dan een loop()
in de setup zet je de uitgangen in de goede modus, dat er inderdaad wat uit komt, een serial poort met Serial.begin(9600) is er zo een.
dan komt het programma in de loop() terecht waar het blijft lopen tot de voeding eraf gehaald wordt.
in de loop kun je andere functions aanroepen door functienaam(variabelen)
goto is net als in basic een noodding en moet echt vermeden worden. kijk naar break
een aanroep is een gosub zoals je ook wel geleerd hebt.
een functie moet natuurlijk ook beschreven staan en dus
void functienaam(int variabele){
dan alle berekeningen en afsluiten met een }
en ach nico heeft wel gelijk hoor, met kijk eerst eens in de boeken, maar tegenwoordig is een antwoord krijgen via internet veel sneller, en handiger.
delay is trouwens ook een functie (maar die zit gewoon in de firmware) dus aanroep met delay(3000);
de volgende keer je programma maken zonder delay maar met een timer (millis()) is de volgende leeropdracht.
Bedankt dit was erg hulpzaam, ik ga aan de slag.
Re: springen naar andere regel
rikblok schreef:shooter schreef:ach ja zo is nico,
ja is duidelijk dat je basic hebt gezien.
doe onder help maar eens op reference klikken, dan gaat er een wereld open.
ook een aanrader is een cheatsheet. (gebruik ik ook nog steeds hoor.
als je iets opstuurt zet het dan tussen code want dat maakt het voor on goed leesbaar.
als je begint dan kom je eerst een setup() tegen
en dan een loop()
in de setup zet je de uitgangen in de goede modus, dat er inderdaad wat uit komt, een serial poort met Serial.begin(9600) is er zo een.
dan komt het programma in de loop() terecht waar het blijft lopen tot de voeding eraf gehaald wordt.
in de loop kun je andere functions aanroepen door functienaam(variabelen)
goto is net als in basic een noodding en moet echt vermeden worden. kijk naar break
een aanroep is een gosub zoals je ook wel geleerd hebt.
een functie moet natuurlijk ook beschreven staan en dus
void functienaam(int variabele){
dan alle berekeningen en afsluiten met een }
en ach nico heeft wel gelijk hoor, met kijk eerst eens in de boeken, maar tegenwoordig is een antwoord krijgen via internet veel sneller, en handiger.
delay is trouwens ook een functie (maar die zit gewoon in de firmware) dus aanroep met delay(3000);
de volgende keer je programma maken zonder delay maar met een timer (millis()) is de volgende leeropdracht.
Bedankt dit was erg hulpzaam, ik ga aan de slag.
Het is gelukt! de file is gecompileerd.
Er zit geen goto meer in, maar mijn vraag is nu, wat doet het programma na de laatste regel. Hij zou moeten terug gaan naar het begin of naar void loop.
code:#include <EEPROM.h>
int Rode_Pin = 1;
int Nul_Pin = 2;
int Groen_Pin= 3;
int OK_Pin = 4;
int In_Pin = 6;
void setup()
{
pinMode(Rode_Pin,OUTPUT); // rode telefoon
pinMode(Nul_Pin,OUTPUT);//nul
pinMode(Groen_Pin,OUTPUT);//groen
pinMode(OK_Pin,OUTPUT);//ok
pinMode(In_Pin,INPUT);//input
}
void loop()
{
#define Routine
digitalRead(In_Pin);
if(In_Pin = HIGH)
digitalWrite; (1,HIGH);//high rodefoon
delay (3000);
digitalWrite; (1,LOW);//low rodefoon
delay (1000);
digitalWrite; (2,HIGH);// nul high
delay (1000);
digitalWrite; (2,LOW);//nul low
delay (1000);
digitalWrite; (2,HIGH);//nul high
delay (10000);
digitalWrite; (2,LOW);//nul low
delay (1000);
digitalWrite; (2,HIGH);//nul high
delay (1000);
digitalWrite; (2,LOW);//nul low
delay (1000);
digitalWrite; (2,HIGH);//nul high
delay (1000);
digitalWrite; (2,LOW);//nul low
delay (1000);
digitalWrite; (3,HIGH);//groenefoon high
delay (1000);
digitalWrite; (3,LOW);// groene telefoon low
delay (3000);
digitalWrite; (1,HIGH);//ophangen
delay (1000);
digitalWrite; (1,LOW);
}
Re: springen naar andere regel
Geen foutmelding, maar werken gaat het vast niet. Normaal geef je na de if via {} aan welke set instructies uitgevoerd moeten worden indien de if-voorwaarde juist is. Deze is overigens bij jou altijd juist, want je definieert de waarde op HIGH. Als vergelijking moet je == gebruiken.
Na het afronden van alles tussen de {} van de loop start de loop opnieuw. Nog wat werk te gaan dus.
Succes.
Gr., Hans
p.s.,
#define Routine // Is volgens mij overbodig
digitalRead(In_Pin); // Dit gaat nu slechts één keer goed. Door het statement hieronder wordt In_Pin gelijk aan 1.
if(In_Pin = HIGH) // In_Pin was 6, zie je declaraties en wordt hier nu 1, zie if statement. Gaat niet goed dus ( = vs. ==)
Na het afronden van alles tussen de {} van de loop start de loop opnieuw. Nog wat werk te gaan dus.
Succes.
Gr., Hans
p.s.,
#define Routine // Is volgens mij overbodig
digitalRead(In_Pin); // Dit gaat nu slechts één keer goed. Door het statement hieronder wordt In_Pin gelijk aan 1.
if(In_Pin = HIGH) // In_Pin was 6, zie je declaraties en wordt hier nu 1, zie if statement. Gaat niet goed dus ( = vs. ==)
18 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: odiyojaqul, oramegitatu en 16 gasten