Formule in code

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

Formule in code

Berichtdoor Jeroentjevrij » 05 Apr 2019, 11:10

Kan iemand mij helpen om onderstaand werkend te krijgen.

Code: Alles selecteren
void Led(int a,int b,int c)
{
  Col(a+(b-1*3));
  Layer(c);
}
void loop()
{
  Led(1,1,1);
  delay(100);
  Led(2,2,2);
  delay(100);
  Led(1,3,3);
}

Heb in de setup cases aangemaakt voor Col 1-9
En Layer 1-3.
Elke Col die high word zet de andere op LOW.
Zo ook voor de Layers.

Wat de code moet doen bij bijvoorbeeld.
Led(2,3,3)=
Col 2+(3-1*3) dus Col 8 high maken en layer 3.
Heb ook int a =0; aangemaakt ook voor b en c.
Maar krijg de melding too few arguments for void Led.
Iemand een oplossing hiervoor

Advertisement

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

Re: Formule in code

Berichtdoor Koepel » 06 Apr 2019, 16:56

Niet goed opgelet bij wiskunde :?: (https://nl.wikipedia.org/wiki/Bewerkingsvolgorde)

Niemand weet wat je bedoelt met "(3-1*3)" of "(b-1*3)", dus gelden de vaste regels die afgesproken zijn. Ook de compiler houdt zich daar aan. Alleen jij wilt iets anders dan de vaste regels.

Voorkom onduidelijkheid en gebruik meer haakjes.
Bijvoorbeeld dit is duidelijk: ((28 - 7) * (5 + 3)) / ((3 / (2+(1-0.5))) + (3 / 7))

Heb je dit wel eens geprobeerd: https://www.google.com/search?q=(3-1*3).
Google kent ook de vaste regels.

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

Re: Formule in code

Berichtdoor Jeroentjevrij » 06 Apr 2019, 19:19

Ja lol dat is nul haha.
Het moet dus zijn2+(3-1)x3

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

Re: Formule in code

Berichtdoor shooter » 07 Apr 2019, 18:48

ik weet nog steeds niet wat je precies wil bereiken .
maar het antwoord van de compiler is duidelijk.
je moet dus eerst een berekening doen om het col nummer te weten dat is dus (a+(b-1)*3)dus dan loopt het van 1 tot en met 9 met de getallen 1,2,3 zet dat als tussenresultaat even neer, en doe dan een call met dat tussenresultaat.
ik zou er nog een argument aan toevoegen 0,1 om een led aan, of uit te zetten.
de volgende stap is dan elke led afzonderlijk aan of uit te zetten.
en dan snelheid erin dus delay uit.
paul deelen
shooter@home.nl

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

Re: Formule in code

Berichtdoor Jeroentjevrij » 23 Apr 2019, 00:22

Ik zoek een oplossing voor mijn issue.
Mijn code is heel lang geworden omdat ik veel digitalWrite gebruik.
Hier wil ik vanaf.
Zou het mogelijk zijn om dat op de volgende manier in te korten.
Ik heb acht kolommen en 8 rijen.
Ik wil per x 1 hele kolom bedienen.
en graag op een wijze die vaker voor bij zie komen (ongeveer) maar niet weet hoe ik de setup moet maken in de ide.
Ik zou het liefst bijvoorbeeld kolom1 met 8leds zo bedienen in functie.
Kolom1 A10101010 A staat voor kathode 1 (pin10) de andere voor de leds 1 t/m 8 (2/9)
Kolom2 word B...... Pin 11 en 2/9
Heb het nu wel zo gekregen A(1,1,0,0,0,0,1,0);
Maar had graag de komma's er tussen uit.
Code: Alles selecteren
 

void A(int A,int B, int C, int D, int E, int F, int G, int H) {
Led(1,int A) ;    // deze functieS zetten pin 2/9 hoog 
Led(2,int B) ;        en 10 laag//
Led(3,int C) ;   
Led(4,int D) ;
Led(5,int E) ;     
Led(6,int F) ;
Led(7,int G) ;     
Led(8,int H) ;
}


Heb voor B led 9/16 die zetten ook 1/8 hoog maar met pin 11 laag voor layer 2

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

Re: Formule in code

Berichtdoor shooter » 23 Apr 2019, 20:32

de komma's worden gebruikt om de getallen te scheiden, het blijven dus altijd integers.
ze kunnen er wel tussenuit maar dat maakt je programma denk ik erg moeilijk, en langer.
hou het simpel en werkend, en ook leesbaar voor een ander.
en ik weet nog steeds niet wat je wilt bereiken.
paul deelen
shooter@home.nl

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

Re: Formule in code

Berichtdoor Jeroentjevrij » 24 Apr 2019, 00:31

Met A11111111 wil ik bereiken.

Laag1(high) ; =A

Led 1 t/m8 (high)
De letter voor de anode laag.
Eerste integer voor eerste led.
Tweede voor de tweede.enz enz

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

Re: Formule in code

Berichtdoor shooter » 24 Apr 2019, 10:25

ja dat kan want dan zul je eerst de integers moeten vertalen naar string, of je kunt in een string kijken wat een karakter is bijv 1,2,3 etc.
paul deelen
shooter@home.nl

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

Re: Formule in code

Berichtdoor Jeroentjevrij » 24 Apr 2019, 21:43

Ok. Dank je ga proberen het uit te vogelen.

Weet iemand misschien een type nummer voor een mosfet die met 5v op de gate met gemak 20mA kan schakelen.
Er was mij de irl540n geadviseerd die had ik fus besteld maar dat blijken n-channel mosfets te zijn.
Die schakelen wel de anode van de leds maar het leek mij niet verstandig deze te gebruiken.
Zou zonde zijn dat ze stuk gaan op de print zonde van al het werk.

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 5 gasten