AVR delay loop generator


2004-03-21
I thought my program had some errors.
So I coded a simple ASM interpreter (simu2.py) to check the generated code.

Everything looks fine: :-)
tapo@morx:~/lang/c++/loopgen> ./simu2.py -f asm2 -l

Program in my memory:
               0 :
               1 :
               2 :
               3 :
               4 :
               5 :
               6 :
               7 :
               8 :
               9 : ldi R0, $65
     Label0   10 : ldi R1, $A4
     Label1   11 : dec R1
              12 : brne Label1
              13 : dec R0
              14 : brne Label0
              15 :
              16 :
-
Jump-Labels: {'Label0': 10, 'Label1': 11}

PC: 17   Z: 1    R0 0    R1 0
clock_counter  : 49995

Version 1.2 (Windoze-Version)

(C)2000 by Tjabo Kloppenburg
Jeder darf die Software downloaden und benutzen.
Nur die kostenlose Weitergabe ist gestattet.
Der Autor übernimmt keinerlei Garantie für die Funktionsweise des Programms!
Der Autor übernimmt keinerlei Haftung im Schadensfalle!

Download for Win9x. (V1.2, RAR 2.60x)
Download for Win9x. (V1.2, ZIP)
I've deaktivated the download link for linux due to some bugs...

Changes:
Version 1.2:

Click here for english text.

Ich habe ein Programm geschrieben, mit dem man recht einfach Warteschleifen für ATMEL AVR-Controllers erzeugen kann, die ohne Timer auskommen. Das Programm ist mehrsprachlich - durch Klick auf eine der Flaggen kann man die GUI auf eine andere Sprache einstellen. Neu: das Programm merkt sich die Einstellung. Was mir noch fehlt sind die Texte für französisch und spanisch -- wenn mir die jemand per Email schickt, baue ich die sofort ein.

Um eine Warteschleife zu erzeugen geht man einfach so vor, wie es in der linken Fensterhälfte des Programmfensters steht:
1. Zuerst gibt man die Taktzyklen an, die von der Warteschleife verbraten werden sollen. Oder wahlweise die Sekunden.
2. Klick auf den START-Button.
3. Den erzeugten Quellcode speichern, oder ins ClipBoard kopieren (für Copy/Paste).
Fertig!

Im Quelltexteditor kann man den Warteschleifen-Code dann einfach per Shift-Einfg einfügen.

Welche Register für die Schleife verwendet werden sollen, stellt man oben recht ein:


English text for non germans:
Send french and spanisch texts and I'll put them in the program!


I've written a program to generate delay loops for ATMEL AVR controllers. It's multilingual. You can change the program's GUI language by clicking on one of the flags.

To generate a delay loop in ASM source code just follow the steps in the left part of the window:
1. Enter the cycles the delay loop shall have. (in a future version you'll be able to enter the delay time in seconds).
2. Click the GO-Button
3. Save the generated code to a file or copy the source to your ClipBoard (Copy/Paste).
That's it.

Watch out for register collisions in your ASM source!

You may download, use and copy the programs for free! See german copyright infos at top of page for details.