Forum: Mikrocontroller und Digitale Elektronik AVR delay loop generator für linux


von Jonas Diemer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Da Tjabo's Loop generator leider nicht (mehr) unter  linux läuft (er hat 
den link entfernt), habe ich einfach mal ein solches programm 
geschrieben.

In einigen fällen liefert es sogar kürzeren asm code als das 
originalprogramm.

Es benutzt GTK+ als toolkit, sollte also auch unter windows kompilieren. 
Ich habe leider kein windows (und auch keinen crosscompiler), wenn's 
jemand für win hinbekommt wäre ich über eine mail dankbar.

Im anhang natürlich das programm im Quellcode.

von Andreas (Gast)


Lesenswert?

Hallo Jonas,

leider habe ich im Moment kein Linux installiert, so dass ich es nicht 
ausprobieren konnte. Habe es aber spaßeshalber mal auf Javascript 
portiert (noch nicht ganz fehlerfrei):
http://www.mikrocontroller.net/delayloop.html
Bis 500000 Zyklen ist die Geschwindigkeit Ok, darüber dauert es SEHR 
lange. Hast du eine Idee, wie man das Script noch optimieren könnte?

MfG
Andreas

von Niki Hammler (Gast)


Lesenswert?

Auch Sekundeneingabe ermöglichen ;))

Meiner Meinung nach nützlicher, hab ich schon x-mal so gebraucht, sonst 
wär das aber echt eine gute Idee.

von Jonas Diemer (Gast)


Lesenswert?

Hi Andreas!

Mensch, gut zu sehen, das es was bringt, programme als open source zu 
veröffentlichen. sollte sich der tajo mal ein beispiel dran nehmen, der 
wollt den code zur windows version nämlich nicht rausrücken... :-)

die java version läut grad bei mir nicht. habe mozilla 0.9.7, vielleicht 
liegts an mir. wenn ich auf calc clicke passiert gar nix.

die geschwindigkeit ließe sich bestimmt optimieren. momentan probiert 
das programm alle möglichen kombinationen von registern aus, und nimmt 
dann das beste. also quasi brute-force. deshalb liefert das programm 
auch bessere resultate als die windows version (z.B. bei 24000000 macht 
das windows programm noch ne extra schleife für 48 rest zyklen. meiner 
macht nur eine 3er schleife).

Optimieren könnte man:
 a) abbruchkrieterien, die die rekursive funktion eher abbrechen.
 b) nicht-rekursiver ansatz. eigentlich muss man nur eine gleichung mit 
n unbekannten lösen, wobei n die anzahl der benötigten register ist (im 
programm max_regs) ist.


bis dann

von Andreas (Gast)


Lesenswert?

Hallo,

geht jetzt auch mit Mozilla.

Ich hab mir noch nicht die Mühe gemacht, die rekursive Funktion 
verstehen zu wollen, werd ich mir aber bei Gelegenheit mal anschaun.

MfG
Andreas

von Jonas Diemer (Gast)


Lesenswert?

Hi!

yo, fuktioniert! Kannste ja auf deiner seite anbieten. wäre nett, wenn 
ich und natürlich auch der ideen-vater tijo Kloppenburg und unsere 
jeweiligen programme erwähnt würden :-)

Mfg

Jonas

von Jonas Diemer (Gast)


Lesenswert?

Hallo!

Hab rasch noch ein paar sachen verbessert und eine heimseite 
zusammengekleistert. die neuste version könnt ihr herunterlaten:

http://diemer.it-pc.de

cu

jonas

von Andreas (Gast)


Lesenswert?

Hallo,

dass du erwähnt wirst ist selbstverständlich! Aber erstmal muss das 
Script vervollständigt und optimiert werden, dann wird es 
veröffentlicht.
Ein Link zu deiner Seite ist in der Linkliste.

MfG
Andreas

von Jonas Diemer (Gast)


Lesenswert?

Cool, danke :-)

schau dir mal version 0.3 an, die sollte in einigen fällen besseren code 
liefern (d.h. kürzeren/weniger register)

von Jonas Diemer (Gast)


Lesenswert?

So, ich hab das ding nun auch unter Windows kompilieren können (bin 
leider momentan gezwungen, windows zu verwenden, weil mein internes 
Laptop Modem nicht unter Linux läuft :-( ).

Interessierte können sich die Window-Binary unter diemer.it-pc.de 
runterladen. Zum ausführen benötigt man noch die GTK+ libraries in der 
version 2.0.

Wenn jemand interessiert ist, kann ich auch noch die DevC++ dateien 
(damit hab ich's unter win kompiliert) bereitstellen. Braucht man nur, 
wenn man das programm selbst kompilieren will.

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.