Code probleem

algemene C code
Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 19:57

Kan iemand mij helpen.

Ik probeer na de loop pin 2 tot 10 op HIGH
Te zetten maar krijg hem niet door de compile.
Code: Alles selecteren
int ledState=LOW;
int t100=100;
int t500=500;

void setup(){

    for(int i=2; i<=10; i++){
  pinMode(i, OUTPUT);
}
    for(int i=A0; i<=A5; i++){
  pinMode(i, HIGH);
}
   }
void R(int r) {
        ledState = digitalRead(r); if (ledState == HIGH) { digitalWrite(r, LOW); } else { digitalWrite(r, HIGH);
        }
   
}
void L(int a) {
        ledState = digitalRead(a); if (ledState == HIGH) { digitalWrite(a, LOW); } else { digitalWrite(a, HIGH); }
    }

   
void loop(){
    for(i = 2;i&lt;10;i++){

   digitalWrite(i, HIGH);
        }
    L(A1);
    delay(t500);
    L(A1);
    L(A2);
    delay(t500);
   
    }
Laatst gewijzigd door Jeroentjevrij op 22 Mrt 2019, 20:24, in totaal 2 keer gewijzigd.

Advertisement

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 20:03

Heb hem al denk ik hoop ik.

for(int i=2; i<=10;i++){

   digitalWrite(i, HIGH);
}

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Code probleem

Berichtdoor Koepel » 22 Mrt 2019, 21:15

Als je code van een webpagina haalt, dan krijg je soms HTML code er tussen, zoals i&lt;10

Maar uhm, zou je willen proberen om code netjes te maken. Dat maakt het een stuk eenvoudiger voor jezelf.

cpp code
int ledState = LOW;
int t100 = 100;
int t500 = 500;

void setup()
{
for (int i = 2; i <= 10; i++)
{
pinMode(i, OUTPUT);
}
for (int i = A0; i <= A5; i++)
{
pinMode(i, HIGH);
}
}

void R(int r)
{
ledState = digitalRead(r);

if (ledState == HIGH)
{
digitalWrite(r, LOW);
}
else
{
digitalWrite(r, HIGH);
}
}

void L(int a)
{
ledState = digitalRead(a);

if (ledState == HIGH)
{
digitalWrite(a, LOW);
}
else
{
digitalWrite(a, HIGH);
}
}

void loop()
{
for (int i=2; i<=10; i++)
{
digitalWrite(i, HIGH);
}

L(A1);
delay(t500);
L(A1);
L(A2);
delay(t500);
}


Door het netjes te maken, en met wat ervaring, dan valt meteen op waar de schoen wringt.
- In setup() heeft de pinMode een HIGH, dat kan niet.
- De R() en de L() zijn exact hetzelfde.
- De variabele "ledstate" wordt in twee verschillende functies gebruikt, maar alleen lokaal. Dus een lokale variabele zou beter zijn.

Als je meer weet van de c++ taal, dan kun je later dingen gaan inkorten.
Bijvoorbeeld het onderstaande is nog steeds leesbaar en doet hetzelfde :geek:

cpp code
inline void R( int pin)
{
digitalWrite( pin, digitalRead( pin) == HIGH ? LOW : HIGH);
}


Maar dat is voor later. Op dit moment is het belangrijk om er geen grote puinhoop van te maken ;)

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 21:30

Ja die high in de setup die klopt niet.
Die moet eruit gebruik mosfets om de kathodes te schakelen omdat me project is gegroeid.

Maar verklaar je nader met netjes ik vind hem heel netjes.
Alles recht onder elkaar.
Begrijp dat voor een ervaren iemand het pijn aan de ogen doet.
Maar goed ik doe dit pas sinds een maand.
Maar tips zijn altijd welkom om hem netjes te maken.

De R en L had ik gedaan om voor mezelf omdat de R de anodes aanstuurt en de L de kathodes.
Zo zie ik sneller of ik het wel juist zet.

En wat bedoel je precies met een lokale variabele?

Bedankt voor je feedback die is altijd welkom word hier graag beter in.

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Code probleem

Berichtdoor Gij Kieken » 22 Mrt 2019, 21:42

De code netjes maken.
In de IDE <ctrl>t drukken ,dan wordt alles netjes uitgelijnd (dat is wat Koepel bedoeld in eerste instantie)

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 21:45

Als ik de inline void R gebruik van jouw komt hij niet door de compile

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Code probleem

Berichtdoor Koepel » 22 Mrt 2019, 21:49

Ha ha ha, dat was iets voor later :!:
Wanneer ik jouw functie R() vervang door mijn functie R(), dan komt het bij mij wel door de compiler.

Wanneer iedere spatie, iedere komma, ieder inspringen, iedere nieuwe regel, ieder haakje, alles correct en op zijn plaats staat, dan is duidelijk te zien wat de code doet. Dat is echt geen grap. Het is overdreven, maar als je daarmee begint, dan kun je later iets slordiger zijn.
Het belangrijkste is natuurlijk het inspringen en de '{' en '}' haakjes. Daar is de Ctrl+t voor.

Jouw sketch had ik netjes gemaakt, maar kies je eigen stijl. Het gaat er om dat duidelijk is wat de code doet, in de eerste plaats voor jezelf.

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

Re: Code probleem

Berichtdoor shooter » 22 Mrt 2019, 21:57

A1 is geen integer je moet dan 14 gebruiken
en L en R zijn precies gelijk dus waarom?
paul deelen
shooter@home.nl

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 22:27

Had de R en L gekozen omdat R voor Row staat
En L voor layer.
Maar heb er nu R van gemaakt.

A1=14 en A0 dan¿

Ik ben helaas niet in het bezit van een computer ik gebruik de ide van Android heb dus geen snel functie om het netjes te maken.

Berichten: 82
Geregistreerd: 27 Feb 2019, 11:19

Re: Code probleem

Berichtdoor Jeroentjevrij » 22 Mrt 2019, 22:57

Word inderdaad een stuk netter zo.
Dank je.

Nou heb ik de setup die R() aangemaakt met een if statement.
Maar kan ik nou in de setup die ook combineren met een for loop.

Iets van.
Code: Alles selecteren
 
void Y1()
{
  for (int i = 2; i <= 4; i++)
  {
  ledState = digitalRead(r);
   
  if (ledState == HIGH)
  {
    digitalWrite(r, LOW);
  }
  else
  {
    digitalWrite(r, HIGH);
  }
}


Stukje netter zo
Code: Alles selecteren
int ledState = LOW;
int t100 = 100;
int t500 = 500;
 
void setup()
{
  for (int i = 2; i <= 10; i++)
  {
    pinMode(i, OUTPUT);
  }
}
 
void R(int r)
{
  ledState = digitalRead(r);
   
  if (ledState == HIGH)
  {
    digitalWrite(r, LOW);
  }
  else
  {
    digitalWrite(r, HIGH);
  }
}
 

void loop()
{
  for (int i=2; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
 
  R(11);
   
  delay(t500);

  R(11);
  R(12);

  delay(t500);
   
  R(12);
  R(13);
   
  delay(t500);
   
///////einde effect////////
 
  for (int i=5; i<=10; i++)
  {
    digitalWrite(i, LOW);
  }
   
  delay(t500);
   
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, LOW);
  }
 
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
   
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  R(13);
  R(12);
   
  delay(t500);
   
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, LOW);
  }
   
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
   
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  R(12);
  R(11);
   
  delay(t500);
   
  for (int i=2; i<=4; i++)
  {
    digitalWrite(i, LOW);
  }
 
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  for (int i=5; i<=7; i++)
  {
    digitalWrite(i, LOW);
  }
   
  for (int i=8; i<=10; i++)
  {
    digitalWrite(i, HIGH);
  }
   
  delay(t500);
   
  R(11);
///////einde effect////////
}

Volgende

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten