Forum: Mikrocontroller und Digitale Elektronik Hilfe! Code Comprimieren


von Matthias R. (mons)


Angehängte Dateien:

Lesenswert?

Hi Leute, Ich hab meinen Quadrocopter in Arduino Programmiert.
Jetzt hab ich allerdings "nur" einen Atmega168.
Kann einer den Code für mich um ca. 1kb komprimieren?
Ich bin für jede Hilfe dankbar.
Ich bin ein NOOB im Komprimieren!
Code im Anhang

von Karl H. (kbuchegg)


Lesenswert?

Ich würde da an deiner Stelle entweder die LCD Ansteuerung oder die 
Serielle rauswerfen, je nachdem was dir wichtiger ist.

Abgesehen davon, ist das bei dem Code ein Arbeiten in kleinen Schritten. 
Am ehesten könnte man noch bei der IMU Berechnung ansetzten und 
versuchen die Floating Point Library zugunsetn von Fixpoint Arithmetik 
loszuwerden. Aber sonst ist da nicht der Brummer zu finden, mit dem man 
schnell mal wesentlichen Speicher frei bekommt. Eher: Dort ein paar 
Bytes, da ein paar Bytes.

von Thomas E. (thomase)


Lesenswert?

Matthias R. schrieb:
> Kann einer den Code für mich um ca. 1kb komprimieren?

Das ist doch nicht wirklich dein Ernst?
Kauf' dir eine 328!

mfg.

von Matthias R. (mons)


Lesenswert?

Ich weiß, die Frage ist dumm, aber wie viel KB grieg ich raus, wenn ich 
das LCD "rauswerf" ?
Köonntest du die für mich ausschneiden?

von Matthias R. (mons)


Lesenswert?

Thomas Eckmann schrieb:
> Kauf' dir eine 328!

Hab schon die ganze Hardware auf ein Mega 168 ausgelegt und gelötet, und 
ich hab kein bo** den wieder auszulöten!
Ja, ich weiß dass die Pin_Kompatibel sind1

von Karl H. (kbuchegg)


Lesenswert?

Matthias R. schrieb:
> Ich weiß, die Frage ist dumm, aber wie viel KB grieg ich raus, wenn ich
> das LCD "rauswerf" ?
> Köonntest du die für mich ausschneiden?

Nein.
Frag den, der das Programm ursprünglich geschrieben hat.
Denn das das nicht von dir ist, steht für mich fest.

Soviel zu
> Ich hab meinen Quadrocopter in Arduino Programmiert

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Matthias R. schrieb:
> Hi Leute, Ich hab meinen Quadrocopter in Arduino Programmiert.
Matthias R. schrieb:
> Köonntest du die für mich ausschneiden?
Hää?
Wenn du das selber programmiert hast, dann wirst du doch auch wissen, wo 
du die Schere ansetzen musst.

Im Quellcode steht übrigens ganz deutlich:
1
In order to save space, it's possibile to desactivate the LCD configuration functions
Der Programmschreiber (offenbar nicht du) hat sich da schon was 
gedacht...

von Karl H. (kbuchegg)


Lesenswert?

Lothar Miller schrieb:
> Matthias R. schrieb:
>> Hi Leute, Ich hab meinen Quadrocopter in Arduino Programmiert.
> Matthias R. schrieb:
>> Köonntest du die für mich ausschneiden?
> Hää?
> Wenn du das selber programmiert hast, dann wirst du doch auch wissen, wo
> du die Schere ansetzen musst.
>
> Im Quellcode steht übrigens ganz deutlich:
>
1
> In order to save space, it's possibile to desactivate the LCD
2
> configuration functions
3
>
> Der Programmschreiber (offenbar nicht du) hat sich da schon was
> gedacht...


Ui. Der hat sogar in diese Richtung vorgearbeitet.

Offenbar hat Matthias den Code noch nicht einmal überflogen.
Und das unterstütz ich nicht.

von holger (Gast)


Lesenswert?

>Hab schon die ganze Hardware auf ein Mega 168 ausgelegt und gelötet, und
>ich hab kein bo** den wieder auszulöten!

Selber schuld??

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karl heinz Buchegger schrieb:
> Ui. Der hat sogar in diese Richtung vorgearbeitet.
Was würde der geneigte Programmierer da tun:
1
/* comment this line only if you don't plan to used a LCD */
2
#define LCD_CONF

von Thomas E. (thomase)


Lesenswert?

Matthias R. schrieb:
> Hab schon die ganze Hardware auf ein Mega 168 ausgelegt und gelötet, und
>
> ich hab kein bo** den wieder auszulöten!

So teuer sind Sockel ja nun wirklich nicht. Also selber schuld.

mfg.

von Matthias R. (mons)


Lesenswert?

Thomas Eckmann schrieb:
> So teuer sind Sockel ja nun wirklich nicht. Also selber schuld

SMD


Ich und mein Freund haben den Code geschrieben!
Die PPM Schleife und die PID Regler sind mein werk

von Karl H. (kbuchegg)


Lesenswert?

Matthias R. schrieb:
> Thomas Eckmann schrieb:
>> So teuer sind Sockel ja nun wirklich nicht. Also selber schuld
>
> SMD
>
>
> Ich und mein Freund haben den Code geschrieben!

Lass es gut sein.
Das glaubt dir sowieso keiner mehr.

von Thomas E. (thomase)


Lesenswert?

Matthias R. schrieb:
> SMD

Dumm gelaufen.

von Thomas E. (thomase)


Lesenswert?

Matthias R. schrieb:
> Ich und mein Freund haben den Code geschrieben!
>
> Die PPM Schleife und die PID Regler sind mein werk

Dann sollte es doch kein Problem sein, den Code mit AVR-Studio zu 
kompilieren und dann über SPI zu flashen. Dann kannst du den Arduino 
Bootoader runterschmeissen und du hast dein Kilobyte, was dir fehlt.

mfg.

von Klaus W. (mfgkw)


Lesenswert?

Schick mir die Hex-Datei, dann kann ich dir das letzte kB abschneiden.

von Nibbler (Gast)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

Nibbler schrieb:
>> Ich und mein Freund haben den Code geschrieben!
>
>
>
> sieht mir irgendwie mehr danach aus als wenns hier
>
> 
http://code.google.com/p/lnmultipilot10/source/browse/branches/Redfox74/MultiFoxWiiV1_4/MultiFoxWiiV1_4.pde?r=364
> bzw
> 
http://code.google.com/p/lnmultipilot10/source/browse/branches/Redfox74/MultiFoxWiiV1_4/?r=364
> abgeschrieben wurde...

zumindest gibt es nicht viele Differenzen.
Um genau zu sein, war bis jetzt noch jede Stichprobe identisch und keine 
Abweichung festzustellen.

von Floh (Gast)


Lesenswert?

sicher einer seiner 20000 facebook-friends :-)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>> Ich und mein Freund haben den Code geschrieben!
> zumindest gibt es nicht viele Differenzen.
Dann wissen wir jetzt ja wer der Freund ist. Gut gemacht, Watson... ;-)

@ Matthias R. (mons)
Wer solche Freunde hat, braucht keine Feinde mehr...  :-o

von Karl H. (kbuchegg)


Lesenswert?

Karl heinz Buchegger schrieb:

> Um genau zu sein, war bis jetzt noch jede Stichprobe identisch und keine
> Abweichung festzustellen.


Das ich nicht lüge.
Die GPL wurde entfernt und alles in 1 File zusammenkopiert.

von Klaus W. (mfgkw)


Lesenswert?

Was habt ihr eigentlich?
Hier liest man doch dauernd "google ist dein Freund".

von Karl H. (kbuchegg)


Lesenswert?

@Mathias

Das ist an sich keine Schande, wenn du nicht programmieren kannst.
Aber schmück dich das nächste mal nicht mit fremden Federn.
Denn: irgendwann kommt es raus und dann ist deine Reputation beim 
Teufel.

von H.Joachim S. (crazyhorse)


Lesenswert?

Das kann ich zu 100% unterschreiben....

von Matthias R. (mons)


Lesenswert?

Nur das mein Code ein bisschen viel länger ist, als der den ihr gefunden 
habt.
Den hab Code hab ich nur verwendet, und noch einige Ergänzungen gemacht!

von Lehrmann M. (ubimbo)


Lesenswert?

Matthias R. schrieb:
> Nur das mein Code ein bisschen viel länger ist, als der den ihr gefunden
> habt.
> Den hab Code hab ich nur verwendet, und noch einige Ergänzungen gemacht!

Dann kannst du ja entsprechend Programmieren (was ich stark bezweifel) 
und damit auch den Code entsprechend kürzen.

Nachdem du aber nicht einmal eine Ahnung hast wo die LCD Routinen stehen 
nehme ich an, du hast den Code noch nicht einmal gesamt durchgelsen 
geschweige denn verstanden.

Wir werden dich hier nicht unterstüzen. Wenn du nicht programmieren 
kannst dann musst du dir fertige Module kaufen (teuer) oder jemanden 
gegen Geld engagieren der dir das macht. (immernoch teuer aber schon 
billiger) ~ 80€ od. mehr.

Wenn du wirklich Programmieren lernen möchtest: 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Ansonsten muss ich dir den großväterlichen Rat geben, das zu lassen. 
Endet sonst nur in sinnlosem Geldausgeben und das Projekt liegt 
hinterher in der Ecke. Klar ist so ein Quadrocopter cool aber als 
Einstieg defintiv absolut ungeeignet. Nicht umsonst gibt es nur einige 
dutzend Ansätze von denen alle kopieren. Und wie man an deinem Beispiel 
sehen kann (keine Angst du bist nicht alleine) ist selbst das 
offensichtlich zu viel verlangt ... Sorry für die harten Worte aber so 
ist es.

von Tanne (Gast)


Lesenswert?

Wollte mich kurz bei euch für diesen großartigen Thread bedanken. Der 
hat mir den Tag ein Stück versüßt^^

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

@Karlheinz

> war bis jetzt noch jede Stichprobe identisch und keine
> Abweichung festzustellen.

jetzt bist du aber ungerecht. ;-)
Ich hab im Main durchaus Unterschiede festgestellt:


Vergleichen von (<)C:\tmp\arduino\main_original.txt (8247 Byte)
 mit (>)C:\tmp\arduino\main_quadkopter.txt (8175 Byte)

56c56
<   //Serial.println("CALL compute IMU");
---
>
121d121
<     //Serial.println("Quad X");

---------------------- oder hier gabs auch Unterschiede:

Vergleichen von (<)C:\tmp\arduino\serialcom_original.txt (3669 Byte)
 mit (>)C:\tmp\arduino\serialcom_quadkopter.txt (3568 Byte)

4,5c4
<   //Serial.print(".");
<   if (Serial.available()>0) {
---
>   if (Serial.available()) {
69,72c68
<
<       for(int cnt=0;cnt<64;cnt++)
<       Serial.print((char)s[cnt]);
<       //Serial.write(s,63);
---
>       Serial.write(s,63);

.... also hat Matthias ja nicht unrecht gehabt, wenn er schrieb:

> Autor: Matthias R. (mons)
> Datum: 06.01.2011 15:31
> Nur das mein Code ein bisschen viel länger ist,
> als der den ihr gefunden habt.
> Den hab Code hab ich nur verwendet,
> und noch einige Ergänzungen gemacht!



aber anscheinend wußte der Ursprungsposter nicht um die Bedeutung dieser 
Zeilen:

/*
MultiWiiCopter by Alexandre Dubus
radio-commande.com
September 2010     V1.0
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 any later version. see <http://www.gnu.org/licenses/>;
*/


-->  @Matthias: gaaaaaaanz schlechter Stil!

Ich denke, du läßt deinen Useraccount hier löschen, und fängst nochmal 
mit einem neuen unbekannten Account an. Dein Name ist jetzt ein wenig 
"verbrannt".

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.