Sida 1 av 1

Behöver lite ledtrådar till min Arduino kod (Löst)

Postat: 2 januari 2020, 20:03:30
av RadioDJ
Jag har skrivit ett litet bibliotek som jag sedan använder i mitt program.
Mitt första exempel fungerar utmärkt, men då jag återanvänder nästan samma kod hela tiden så skulle jag vilja lägga allt i en array för att lättare kunna stega igenom samma sak med bara små justeringar.

Detta använder jag idag och det fungerar.

Kod: Markera allt

#include "CountdownTimer.h"
CountdownTimer * g_countdowntimer_Led_1  = new CountdownTimer(100);
CountdownTimer * g_countdowntimer_Led_2  = new CountdownTimer(200);
CountdownTimer * g_countdowntimer_Led_3  = new CountdownTimer(300);
Jag skulle i stället vilja ha något i stil med, men får inte detta att fungera:

Kod: Markera allt

#include "CountdownTimer.h"
CountdownTimer * g_countdowntimer_Led[3];
g_countdowntimer_Led[0]  = new CountdownTimer(100);
g_countdowntimer_Led[1]  = new CountdownTimer(200);
g_countdowntimer_Led[2]  = new CountdownTimer(300);
Hade jag fått detta att fungera så hade resten av koden kunnat bantas en hel del.

Var har jag tänkt fel?

Re: Behöver lite ledtrådar till min Arduino kod

Postat: 2 januari 2020, 20:07:19
av janno
Vad är det som inte fungerar? Vad blir det för fel? Hur gör du när du använder arrayen?

Re: Behöver lite ledtrådar till min Arduino kod

Postat: 2 januari 2020, 20:31:29
av RadioDJ
Jag får detta som svar redan när jag inkluderar mitt bibliotek.

Tidtagare_v5405:89:1: error: 'g_countdowntimer_Led' does not name a type

g_countdowntimer_Led[0] = new CountdownTimer(100);

^

exit status 1
'g_countdowntimer_Led' does not name a type

Re: Behöver lite ledtrådar till min Arduino kod

Postat: 2 januari 2020, 22:42:02
av XorXaX
Har du inte glömt en stjärna framför
g_countdowntimer_Led[0] = new CountdownTimer(100);

Alltså
*g_countdowntimer_Led[0] = new CountdownTimer(100);

Lika på alla tre tilldelningar förstås.

.

Re: Behöver lite ledtrådar till min Arduino kod

Postat: 3 januari 2020, 00:34:14
av Mr Andersson
Nej det ska inte vara någon mer stjärna.

Lägg dina tilldelningar i t.ex. setup(). Du kan inte köra kod utanför en funktion.

Alternativt skriv om koden till att använda en initializer-list.

Kod: Markera allt

CountdownTimer* g_countdowntimer_Led[] {
  new CountdownTimer(100), 
  new CountdownTimer(200), 
  new CountdownTimer(300)
};

Re: Behöver lite ledtrådar till min Arduino kod

Postat: 3 januari 2020, 09:48:27
av RadioDJ
Tack Mr Andersson.
Detta gjorde susen.