- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: Anfänger: Vereinfachung

  1. #1
    jojo.glaser
    Gast

    Anfänger: Vereinfachung

    Anzeige

    Praxistest und DIY Projekte
    Hi,

    Ich mein SPeicher von meinem AVR ist voll und ich bräuchte ne Vereinfachung für den folgenden Code.

    Ich binn noch Anfänger und hab kene Ahnung, wie man das vereinfachen kann.

    Kannst du mir da Weiterhelfen?

    Vielen DANK!!!!!!!!
    Code:
    			if(Dimmer1LOLin < 17)
    			{
    				Dimmer1LOLin = Dimmer1LOLin + 1;
    				
    				if(Dimmer1LOLin == 1)
    				{ Dimmer1LO = Lin1; }
    				if(Dimmer1LOLin == 2)
    				{ Dimmer1LO = Lin2; }
    				if(Dimmer1LOLin == 3)
    				{ Dimmer1LO = Lin3; }
    				if(Dimmer1LOLin == 4)
    				{ Dimmer1LO = Lin4; }
    				if(Dimmer1LOLin == 5)
    				{ Dimmer1LO = Lin5; }
    				if(Dimmer1LOLin == 6)
    				{ Dimmer1LO = Lin6; }
    				if(Dimmer1LOLin == 7)
    				{ Dimmer1LO = Lin7; }
    				if(Dimmer1LOLin == 8)
    				{ Dimmer1LO = Lin8; }
    				if(Dimmer1LOLin == 9)
    				{ Dimmer1LO = Lin9; }
    				if(Dimmer1LOLin == 10)
    				{ Dimmer1LO = Lin10; }
    				if(Dimmer1LOLin == 11)
    				{ Dimmer1LO = Lin11; }
    				if(Dimmer1LOLin == 12)
    				{ Dimmer1LO = Lin12; }
    				if(Dimmer1LOLin == 13)
    				{ Dimmer1LO = Lin13; }
    				if(Dimmer1LOLin == 14)
    				{ Dimmer1LO = Lin14; }
    				if(Dimmer1LOLin == 15)
    				{ Dimmer1LO = Lin15; }
    				if(Dimmer1LOLin == 16)
    				{ Dimmer1LO = Lin16; }
    			}
    Edit: mit Code-Tags sieht das viel hübscher aus (PicNick)

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Was soll das Programm denn bewirken? Ne Möglichkeit, die zumindestens schöner aussieht, wäre case. Aber es könnte auch noch ganz anders gehen...

    EDIT: wieso packst du die Lin1... Variblen nicht in ein Array? Dann kannst du den ganzen Krempel mit
    Dimmer1LO = Lin[Dimmer1LOLin]
    erledigen. (wobei Lin hierbei das Array ist, in dem die Werte von Lin1 bis Lin16 stehen. Deklariert wird es über
    int Lin[16];
    ACHTUNG! Es wird von null an durchgezählt, also Lin[0] bis Lin[15])

  3. #3
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Was is'n das "Lin1" .... "Lin16" ?

    Schön wäre:
    uint8_t Lin [16];
    "Lin1 = 15 " (z.B.) hiesse dann "Lin [1] = 15" (z.B.)
    Manche Gurus sagen dann "array" dazu.
    Dann wär' die Schleife hübscher:
    if(Dimmer1LOLin < 17)
    {
    Dimmer1LOLin++;
    Dimmer1LO = Lin [ Dimmer1LOLin ];
    }
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  4. #4
    jojo.glaser
    Gast
    Was is'n das "Lin1" .... "Lin16" ? das sind Variablen

    Ich hab keine ahnung von harry oder was das ist

    Kannst du mir den Text vereinfachen?

    Dann gug ich mia das an, dann lerne ich am meinste.

    Das währe nett!

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Ein Array ist quasi ne Tabelle, in der man Daten ablegen kann. Die einzelnen Elemente werden über eine Zahl als Index angesprochen. Dies kann sowohl mit eine Konstante (Lin[5]) als auch mit einer Variablen geschehen (Lin[idx]).

    http://de.wikibooks.org/wiki/C-Progr...ys_und_Strings

    PicNick hat schon das Wesentliche an Code geschrieben. Du muss vorher nur das Array mit Werten füllen, also
    Lin[1]=34;
    Lin[2]=73;
    Lin[3]=11;
    ...


    und dran denken, es wird ab Null gezählt!

  6. #6
    jojo.glaser
    Gast
    Sorry versteh ich net

    Wie muss dann der Code aussehen, so dass ich ihn gegen den alten code austauschen kann?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    Ês belibt dann nciht bei einer Änderung dieser Stelle. Da sich die Datenstruktur ändert, muss auch der Rest des Programms geändert werden, überall dort, wo die Lin... Variablen verwendet werden.

  8. #8
    jojo.glaser
    Gast
    Wenn ich das richtig verstehe die Programm stelle ersetzen und überall, wo ich diese variable verwend abändern.

    Ich bin noch neuling, kannst du mir mal das zusammenschreibn, dass was ich ersetzen musss?

    Danke

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    37
    Beiträge
    4.255
    btw: was hast du eigentlich für nen AVR, und was muss er sonst noch alles erledigen, dass der Speicher voll ist?

    Poste mal das gesamte Programm, dann ists einfacher zu sagen...

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test