Zeitverzögerung

Gast #3116
Lesenswert?
• ▲
▼
Hallo!

Nummer1-Empfehlung, schafft fast alle Zeitbereiche. AVRDelayLoop
ist ein Programm (Windows) wo du einfach deine Taktfrequenz und die Zeit 
eingibst (oder auch Zyklen) und es erzeugt Assembler Code den du in 
deinem programm einfügen kannst.

Ich weiss zwar nicht auswendig wo du es herbekommst aber du kannst es 
über meinen Server runterladen, wenn er eingeschalten ist (probier es 
halt mal), sonst such in google

http://nobaq.dyndns.org/secret/avr/


Niki
Gast #3120
Lesenswert?
• ▲
▼
gibs in den delayloop generator ein.

bei 4mhz kommt z.B. folgendes raus (bei der linux version):

;<===   Warteschleife   ===>
; 4000000 Zyklen
; 3 Register verwendet
;------------------------
;warte 3999996 Zyklen

  ldi R16,0xfc
WL0:  ldi R17,0xe6
WL1:  ldi R18,0x16
WL2:  dec R18
  brne WL2
  dec R17
  brne WL1
  dec R16
  brne WL0

;warte 4 Zyklen
  nop
  nop
  nop
  nop
Gast #3121
Lesenswert?
• ▲
▼
Hallo,
ich hab die Windows version,kann aber nur max 500s 
eingeben(=8,33Minuten),auserdem wird der Code ziemlich umfangreich,gibts 
keine
einfachere Methode.Ich versuch mal eine verzögerung von 5 Minuten
und ruf die dann in einer schleife 12 Mal auf, müsste funktrionieren.
Gast #3123
Lesenswert?
• ▲
▼
ohh, hab grad gesehen, dass meine linux version auch abkackt (er rechnet 
SEHR lange), wenn man ihm 5min eingibt. vielleicht mach ich da mal was.

allerdings sind warteschleifen auch nicht der beste weg, um eine lange 
zeit zu überbrücken. dafür sind timer wirklich besser weil:

1) nicht so kompliziert, weil du ja nicht zig schleifen mit zig 
registern brauchst.
2) der avr kann in der wartezeit
...a)andere dinge tun
...b)schlafen und energie sparen


wie du den timer verwendest steht im datasheet und auch im forum 
"Codesammlung"
Gast #3125
Lesenswert?
• ▲
▼
basiert der auf meiner linux -version? dass die so lahm ist, liegt 
daran, dass sie alle registerkombinationen durchgeht (rekursiver 
aufbau), um so die beste (also kürzeste) fassung zu finden.

vielleicht kann ich ja noch etwas speed rauskitzeln... ich sag bescheid, 
wenn ich mal wieder was dran mache - momentan schreibe ich an einem 
AVRStudio ersatz für linux (und windows).
Gast #3127
Lesenswert?
• ▲
▼
Hallo,

falls du irgendwann soweit bist und eine lauffähige IDE auf die Beine 
gestellt hast, mit der man einigermaßen gescheit avr-gcc programmieren 
kann, wäre ich auch an frühreren (Entwickler-)Versionen interessiert.

Mit welchem Toolkit(gtk,qt,...) schreibst du das denn? (nur rein 
interessehalber, hab keine Ahnung von GUI's).

Danke & ciao,

      Christian
Gast #3128
Lesenswert?
• ▲
▼
@Andreas

Du hast nur maximal 2 Schleifen implementiert, oder ?

Wenn ich 100ms will, dann rechnet er ....

Womit schreibt Ihr momentan so eure Programme?
im AVR Assembler vermisse ich syntax highlightning
und beim Studio muss ich immer erst gross ein Projekt öffnen, bevor ich 
was assembeln kann.

jo
Axel



... immer noch (100% Auslastung auf meiner P4 1.6GHz Maschine)
... schon seit min. 5 Minuten :-)
...
...
Gast #3129
Lesenswert?
• ▲
▼
von dem simulator wusste ich noch gar nix! :-)

ich wollte eigentlich nen kompletten simulator schreiben.. das interface 
in gtk+.


hab bis jetzt 8!!! :-) instruktionen implementiert und etwas interface. 
ich mach das aber nicht, damit's unbedingt fertig wird (was natürlich 
schön wäre), sonder um zu lernen+ spass zu haben
Admin Persönliche Seite #3131
Lesenswert?
• ▲
▼
Mal eine Idee für etwas, was ich in jedem Simulator vermisse: man müsste 
Module für Peripheriegeräte einbinden können. So dass man z.B. ein Modul 
für ein LCD hat das an bestimmte Pins des Controllers "angeschlossen" 
werden kann und das dann die Funktion simuliert. Oder Taster die auch 
das Prellen simulieren... oder I2C-EEPROMs... oder AD-Wandler... die 
Liste ist endlos. Du musst das ja nicht alles selber schreiben,  aber 
eine Schnittstelle die sowas ermöglicht wäre echt a Hammer :-)

MfG
Andreas

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.