Vraagje over bepaald stukje code

algemene C code
Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Vraagje over bepaald stukje code

Berichtdoor christiaan » 10 Feb 2016, 14:26

Hallo,

Ik heb van verschillende mensen een stukje code gevonden op internet, en daar staat het volgende stukje in:

cpp code
enum state {WAITING, LOOPING} current_state = WAITING;


Deze wordt verderop gecheckt met een switch case.

Echter als ik nog een toevoeg aan mijn sketch wil hij niet meer compileren en uploaden...

cpp code
enum state {WINNER, LOSER, PLAYING} current_game = PLAYING;


Nu is mijn vraag, kan ik beide gebruiken, of kan ik er maar 1 van in mijn code hebben staan?????

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Vraagje over bepaald stukje code

Berichtdoor nicoverduin » 10 Feb 2016, 15:52

Welke boodschap geeft hij?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: Vraagje over bepaald stukje code

Berichtdoor christiaan » 10 Feb 2016, 19:50

multiple definition of 'enum state'.

En daarbij heb ik nog een klein probleempje met mijn do while loop. Hij loopt hem wel door, alleen ik krijg hem niet stoppend...

cpp code
#include "LedControlMS.h"
#define NBR_MTX 2
LedControl lc=LedControl(5,7,6, NBR_MTX);

int counterTotal = 10; // 1,5 uur = 5400

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
for (int i=0; i< NBR_MTX; i++){
lc.shutdown(i,false);
/* Set the brightness to a medium values */
lc.setIntensity(i,8);
/* and clear the display */
lc.clearDisplay(i);
}
}

void loop() {
// put your main code here, to run repeatedly:

showWaiting();
}

void showWaiting() {
do {
//Do something until counterTotal = 0
clearAllMatrix();
waitingPos1();
delay(240);
clearAllMatrix();
waitingPos2();
delay(240);
clearAllMatrix();
waitingPos3();
delay(240);
clearAllMatrix();
waitingPos4();
delay(240);
Serial.println(counterTotal);
counterTotal--;
} while (counterTotal <= 0);
}

void waitingPos1() {
lc.setLed(0,3,6,true);
lc.setLed(0,4,6,true);
lc.setLed(0,6,6,true);
lc.setLed(0,2,5,true);
lc.setLed(0,5,5,true);
lc.setLed(0,6,5,true);
lc.setLed(0,1,4,true);
lc.setLed(0,4,4,true);
lc.setLed(0,5,4,true);
lc.setLed(0,6,4,true);
lc.setLed(0,1,3,true);
lc.setLed(0,2,2,true);
lc.setLed(0,5,2,true);
lc.setLed(0,3,1,true);
lc.setLed(0,4,1,true);
}

void waitingPos2() {
lc.setLed(0,3,6,true);
lc.setLed(0,4,6,true);
lc.setLed(0,2,5,true);
lc.setLed(0,5,5,true);
lc.setLed(0,1,4,true);
lc.setLed(0,6,4,true);
lc.setLed(0,1,3,true);
lc.setLed(0,4,3,true);
lc.setLed(0,6,3,true);
lc.setLed(0,2,2,true);
lc.setLed(0,4,2,true);
lc.setLed(0,5,2,true);
lc.setLed(0,4,1,true);
lc.setLed(0,5,1,true);
lc.setLed(0,6,1,true);
}

void waitingPos3() {
lc.setLed(0,3,6,true);
lc.setLed(0,4,6,true);
lc.setLed(0,2,5,true);
lc.setLed(0,5,5,true);
lc.setLed(0,6,4,true);
lc.setLed(0,1,3,true);
lc.setLed(0,2,3,true);
lc.setLed(0,3,3,true);
lc.setLed(0,6,3,true);
lc.setLed(0,1,2,true);
lc.setLed(0,2,2,true);
lc.setLed(0,5,2,true);
lc.setLed(0,1,1,true);
lc.setLed(0,3,1,true);
lc.setLed(0,4,1,true);
}

void waitingPos4() {
lc.setLed(0,1,6,true);
lc.setLed(0,2,6,true);
lc.setLed(0,3,6,true);
lc.setLed(0,2,5,true);
lc.setLed(0,3,5,true);
lc.setLed(0,5,5,true);
lc.setLed(0,1,4,true);
lc.setLed(0,3,4,true);
lc.setLed(0,6,4,true);
lc.setLed(0,1,3,true);
lc.setLed(0,6,3,true);
lc.setLed(0,2,2,true);
lc.setLed(0,5,2,true);
lc.setLed(0,3,1,true);
lc.setLed(0,4,1,true);
}

void clearAllMatrix() {
lc.setLed(0,0,0,false);
lc.setLed(0,0,1,false);
lc.setLed(0,0,2,false);
lc.setLed(0,0,3,false);
lc.setLed(0,0,4,false);
lc.setLed(0,0,5,false);
lc.setLed(0,0,6,false);
lc.setLed(0,0,7,false);
lc.setLed(0,1,0,false);
lc.setLed(0,1,1,false);
lc.setLed(0,1,2,false);
lc.setLed(0,1,3,false);
lc.setLed(0,1,4,false);
lc.setLed(0,1,5,false);
lc.setLed(0,1,6,false);
lc.setLed(0,1,7,false);
lc.setLed(0,2,0,false);
lc.setLed(0,2,1,false);
lc.setLed(0,2,2,false);
lc.setLed(0,2,3,false);
lc.setLed(0,2,4,false);
lc.setLed(0,2,5,false);
lc.setLed(0,2,6,false);
lc.setLed(0,2,7,false);
lc.setLed(0,3,0,false);
lc.setLed(0,3,1,false);
lc.setLed(0,3,2,false);
lc.setLed(0,3,3,false);
lc.setLed(0,3,4,false);
lc.setLed(0,3,5,false);
lc.setLed(0,3,6,false);
lc.setLed(0,3,7,false);
lc.setLed(0,4,0,false);
lc.setLed(0,4,1,false);
lc.setLed(0,4,2,false);
lc.setLed(0,4,3,false);
lc.setLed(0,4,4,false);
lc.setLed(0,4,5,false);
lc.setLed(0,4,6,false);
lc.setLed(0,4,7,false);
lc.setLed(0,5,0,false);
lc.setLed(0,5,1,false);
lc.setLed(0,5,2,false);
lc.setLed(0,5,3,false);
lc.setLed(0,5,4,false);
lc.setLed(0,5,5,false);
lc.setLed(0,5,6,false);
lc.setLed(0,5,7,false);
lc.setLed(0,6,0,false);
lc.setLed(0,6,1,false);
lc.setLed(0,6,2,false);
lc.setLed(0,6,3,false);
lc.setLed(0,6,4,false);
lc.setLed(0,6,5,false);
lc.setLed(0,6,6,false);
lc.setLed(0,6,7,false);
lc.setLed(0,7,0,false);
lc.setLed(0,7,1,false);
lc.setLed(0,7,2,false);
lc.setLed(0,7,3,false);
lc.setLed(0,7,4,false);
lc.setLed(0,7,5,false);
lc.setLed(0,7,6,false);
lc.setLed(0,7,7,false);
delay(10);
}

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Vraagje over bepaald stukje code

Berichtdoor shooter » 10 Feb 2016, 22:26

enum heeft een type nodig bijv byte
en er staat <= 0 dat moet zijn > 0
en als dat gebeurt is dan bevriest alles want de loop wordt gewoon doorlopen en de showwaiting niet maar dat zie je niet.
dus je zult hem moeten vertellen wat er moet gebeuren als de teller 0 =
paul deelen
shooter@home.nl

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Vraagje over bepaald stukje code

Berichtdoor nicoverduin » 10 Feb 2016, 23:28

enum hoeft geen type te hebben. Doe ik nog nooit. Die melding die hij krijgt komt doordat hij kennelijk die enum states er 2 keer heeft staan. Maar waar staat die eigenlijk? In de listing die je post staat geen enum.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 86
Geregistreerd: 31 Dec 2015, 14:11

Re: Vraagje over bepaald stukje code

Berichtdoor christiaan » 11 Feb 2016, 08:16

Het zijn 2 verschillende codes. De gehele code die je ziet is mijn test voor de waiting sign.

Beide enum state staan bij mij in de andere code voor de setup begint...

Volstaat het met een if (counterTotal == 0) {

matrixAllOff();
}

Of gaat dat niet werken? En waar zet ik die neer????

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Vraagje over bepaald stukje code

Berichtdoor nicoverduin » 11 Feb 2016, 08:31

Daar het kennelijk geheim is waar je mee bezig bent .... kan ik je zo niet verder helpen. Je stelt een vraag over code zonder die code neer te zetten.
Daarnaast heb je kennelijk 2 aparte sketches met aparte vragen. Maak daar dan 2 aparte topics van. Dan heeft een ander er ook wat aan. En zet die sketches gewoon hier. Nu is het een zinloze actie op deze manier.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 4067
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Vraagje over bepaald stukje code

Berichtdoor shooter » 11 Feb 2016, 12:01

mijn excuses ja nico je hebt gelijk.
en ja chris die kun je gewoon in de loop zetten, maar wat dan? moet het restarten of wat?
paul deelen
shooter@home.nl

Berichten: 7
Geregistreerd: 01 Dec 2015, 14:11

Re: Vraagje over bepaald stukje code

Berichtdoor Roelf » 11 Feb 2016, 12:02

christiaan schreef:Hallo,

Ik heb van verschillende mensen een stukje code gevonden op internet, en daar staat het volgende stukje in:

cpp code
enum state {WAITING, LOOPING} current_state = WAITING;


Deze wordt verderop gecheckt met een switch case.

Echter als ik nog een toevoeg aan mijn sketch wil hij niet meer compileren en uploaden...

cpp code
enum state {WINNER, LOSER, PLAYING} current_game = PLAYING;


Nu is mijn vraag, kan ik beide gebruiken, of kan ik er maar 1 van in mijn code hebben staan?????

Als je van de tweede nu het volgende maakt:
cpp code
enum game {WINNER, LOSER, PLAYING} current_game = PLAYING;

is het conflict weg.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Vraagje over bepaald stukje code

Berichtdoor nicoverduin » 11 Feb 2016, 12:44

Symptoom bestrijding.... leer je niets van.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 16 gasten