PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bestimmter Assemblerbefehl gesucht


Gast
2010-01-25, 20:12:32
Hallo,

ich suche einen Befehl, mit dem ich eine gewisse Zeit abwarten kann in milisekunden, z. B., dass Lämpchen 200 ms Sekunden leuchten bevor sie wieder ausgehen. Habe vergessen, wie der heisst... Ich hoffe jemand von euch kann mir weiterhelfen.

derpinguin
2010-01-25, 20:19:31
Da wäre es vielleicht interessant für welchen Prozessor. Es gibt nun ja mehrere Assemblersprachen, die sich unterscheiden.

Gast
2010-01-25, 20:24:25
Geht um den 8085.

Coda
2010-01-25, 20:28:31
Mach ne Schleife. Die Instruction-Timing vom 8085 sind noch vorhersehbar.

Die_Allianz
2010-01-25, 20:35:44
oder wenns kompliziert sein soll, mit nem timer + interrupt

Coda
2010-01-25, 20:53:48
Eigentlich ist es eh ein Troll, denn es gibt garantiert keine Wait-for-x-Cycles-Instruction.

Gast
2010-01-25, 21:00:37
Danke. Ich war/bin mir fast 100% sicher, dass es doch sowas gibt. Oder ich hab etwas verpeilt beim letzten Unterricht. Man konnte mit den Anzahl der Millisekunden multiplizieren, aber ich weiß nicht mehr was/wie der Befehl hieß

MooN
2010-01-25, 21:17:42
Danke. Ich war/bin mir fast 100% sicher, dass es doch sowas gibt. Oder ich hab etwas verpeilt beim letzten Unterricht. Man konnte mit den Anzahl der Millisekunden multiplizieren, aber ich weiß nicht mehr was/wie der Befehl hieß

Eine Schleife bauen, deren Anzahl an Operationen verrechnet mit der Taktung des Prozessors exakt deine 200ms ergeben?

Die_Allianz
2010-01-25, 21:27:18
Eigentlich ist es eh ein Troll, denn es gibt garantiert keine Wait-for-x-Cycles-Instruction.
ich kann mich jedenfalls an keine erinnern. ist aber schon eine weile her, als ich zuletzt für einen 8085 programmiert habe. Und wenn dann meißt C

Spasstiger
2010-01-26, 10:05:31
Normalerweise macht man sowas mit einem Timer. Der Timer zählt einfach jeden Takt hoch, wobei der Timer-Takt gegenüber dem Systemtakt durchaus untersetzt sein kann. Für den 8085 hab ich aber noch keinen Assemblercode geschrieben, bei einem FPGA kann man sich so einen Timer einfach schnell reinbasteln. :freak:

Sephiroth
2010-01-26, 16:13:54
Für den 8085 hab ich aber noch keinen Assemblercode geschrieben, bei einem FPGA kann man sich so einen Timer einfach schnell reinbasteln. :freak:
Das nennt man dann wohl Cheaten. ;) Weißt du was mit (den Rechnern von) Cheatern passiert? :tongue:

@topic

Bei 2 MHz hast 2 Millionen Zyklen. Im Loop z.B. ein Befehl der 4 Zyklen braucht (NOP). Bei X Sekunden Wartezeit sind das (2000000*X)/4 viele Loops. Bei X = 0,2 (200 ms) sind das dann eben 100000 Loops. Die Zahl ist aber zu groß für 8 Bit und du musst daher noch 2 Schleifen drumherum bauen, mit entsprechend vielen Durchläufen (Tip: MOD und DIV 0xff)

Gast
2010-01-26, 21:25:38
Am FPGA darf man das. Wenn mans auf nem ASIC macht kommt der Chef und schlägt einem so lange gegen den Hinterkopf bin man sein Design wieder auf die selbe Fläche, Geschwindigkeit und Energieverbrauch bringt wie davor :D

mfg,
zgep

GuckstDu
2010-01-27, 16:39:47
In Wikipedia findet man viel, vorausgesetzt man sucht.
http://de.wikipedia.org/wiki/Intel_8085