Archiv verlassen und diese Seite im Standarddesign anzeigen : Bestimmter Assemblerbefehl gesucht
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.
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
Eigentlich ist es eh ein Troll, denn es gibt garantiert keine Wait-for-x-Cycles-Instruction.
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ß
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)
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
vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd.