mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Hilfe! Code Comprimieren


Autor: Matthias R. (mons)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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:
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...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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:
>
> 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...


Ui. Der hat sogar in diese Richtung vorgearbeitet.

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

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

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias R. schrieb:
> SMD

Dumm gelaufen.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

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

Autor: Nibbler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich und mein Freund haben den Code geschrieben!



sieht mir irgendwie mehr danach aus als wenns hier

http://code.google.com/p/lnmultipilot10/source/bro...
bzw 
http://code.google.com/p/lnmultipilot10/source/bro...
abgeschrieben wurde...

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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/bro...
> bzw
> 
http://code.google.com/p/lnmultipilot10/source/bro...
> abgeschrieben wurde...

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

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sicher einer seiner 20000 facebook-friends :-)

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus Wachtler (mfgkw)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: H.Joachim Seifert (crazyhorse)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das kann ich zu 100% unterschreiben....

Autor: Matthias R. (mons)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tanne (Gast)
Datum:

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

Autor: Wegstaben Verbuchsler (wegstabenverbuchsler)
Datum:

Bewertung
0 lesenswert
nicht 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".

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.