Forum: Mikrocontroller und Digitale Elektronik Programmsequenz


von Hugo Müller (Gast)


Lesenswert?

Hallo,

hab von meinem Lehrer eine Aufgabe bekommen und weiß gar nicht was ich 
damit anfangen soll.

10.  Gegeben ist nachfolgende Programmsequenz:
Main: …
  jmp entprell
…
entprell PROC
  mov R3,#65535    ;Zeitzähler auf Anfangswert
  M1 sub R3,#1
  jmpr CC_NZ, M1;
  ret
  entprell ENDP

a)  Erläutern Sie kurz die Funktion. Wozu kann Sie verwendet werden?


b)  Ist die Programmsequenz lauffähig? Begründen Sie ihre Aussage.


c)  Schreiben Sie die Sequenz in C.


d)  Wie würden Sie eine Datensicherung vornehmen? Welche Daten sind zu 
sichern? Begründen Sie ihre Antwort.


e)  Wie erfolgt die Datensicherung mit dem Context-Pointer (CP)?


Wär cool wenn jemand eine Lösung hätte.

Gruß Hugo

von doch gast (Gast)


Lesenswert?


von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Hugo Müller schrieb:
> a)  Erläutern Sie kurz die Funktion. Wozu kann Sie verwendet werden?
Zum Vernichten von Rechenzeit.

> b)  Ist die Programmsequenz lauffähig? Begründen Sie ihre Aussage.
Nach beheben evtl. Syntaxfehler wie
M1:  sub R3,#1
wahrscheinlich schon.

> c)  Schreiben Sie die Sequenz in C.
for(unsigned short r3=0xfff, r3, r3--);
Aber Compileroptimierungen abschalten!!!!

> d)  Wie würden Sie eine Datensicherung vornehmen? Welche Daten sind zu
> sichern? Begründen Sie ihre Antwort.
Datensicherung unnötig, weil keine Interruptroutine.

> e)  Wie erfolgt die Datensicherung mit dem Context-Pointer (CP)?
S.o.

Wenn du das jetzt aber einfach abschreibst, wirst du (obwohl meine 
Aussagen stimmen) in Erklärungnöte kommen, denn diese Argumentation will 
der Lehrer vermutlich nicht hören.

von Peter D. (peda)


Lesenswert?

Also wer als Lehrer ne Delay-Loop mit "Entprell" bezeichnet, der gehört 
fristlos entlassen. Der hat schonmal rein garnichts verstanden.
Kein Wunder, wenn dadurch haufenweise Geräte mit sauschlechter 
Tastenfunktion verkauft werden.
Nicht die Billigtasten sind die Hauptursache, sondern die fehlende 
Programmierkenntnis.

Delay und Entprellen sind 2 völlig verschiedenen Dinge.
Kurze Delays (einige µs) nimmt man, um das Timing an langsame Peripherie 
anzupassen, wie z.B. LCDs.
Lange Delays (>1ms) nimmt man garnicht, da sie die CPU massiv ausbremsen 
oder nur zum Austesten kleiner Programme.

Zum Entprellen nimmt man üblicher Weise einen Timerinterrupt. Wichtig 
ist dabei eine Mehrfachabtastung des Eingangs (2-fach Minimum, 4-fach 
empfohlen) in einem entsprechenden Zeitraster.


Peter

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.