Forum: Mikrocontroller und Digitale Elektronik klausur_vorbereitung


von Yves M. (magnyves)


Lesenswert?

Halloo Leute,

ich habe in paar Tage micro_klausur und ich bin am üben, aber ich 
verstehe nicht viele von was ich mache..
kann jemandem mich bitte helfen..?
was ist in diese Beschreibung gefragt?
ich meine hier mit dem 400 Machinenzyklen.. was ist das? wie soll ich es 
programieren?
danke im voraus

Lg yves

;Beschreibung: Programmierung „Serieller Watchdog“
Der 80c515c soll zur Überwachung eines zweiten Mikrocontrollers 
eingesetzt werden.Hierzu sind die beiden Controller über die serielle 
Schnittstelle miteinander verbunden.Die Schnittstelle soll in Mode 1 (1 
Startbit, 8 Datenbits, 1 Stoppbit)mit einer Baudrate von 9,6kBaud 
betrieben werden.Zur Takterzeugung wird ein 10MHz-Quarz 
verwendet.Schreiben Sie ein Programm in Assembler, welches zyklisch 
überprüft,ob im Zeitintervall von 50ms ein serieller Empfang 
stattgefunden hat. Bleibt der Empfang aus,soll der Reset-Pin des zu 
überwachenden Mikrocontrollers für 400 Maschinenzyklen auf 0-Pegel 
gezogen und die Überwachung gestoppt werden.Der Reset-Pin des zu 
überwachenden Controllers ist an P1.0 des 80c515c angeschlossen.Ist die 
Überwachung nicht aktiv, kann Sie jederzeit über einen seriellen Empfang 
gestartet werden.

: Verschoben durch Admin
von WLAN-Kabel (Gast)


Lesenswert?

hausaufgaben -_-

von Luftgitarre (Gast)


Lesenswert?

umsonst angemeldet, falsches forum, keinen plan vom studiengang...
und in 5 jahren wundern, dass man ned eingestellt wird - gleich danach 
gegen den ingenieurmangel wettern.

von Yves M. (magnyves)


Lesenswert?

warum? ist es das echt kinder sache?
ok dann sry

von Yves M. (magnyves)


Lesenswert?

ja hausaufgabe

von Michael M. (Gast)


Lesenswert?

400 maschinenzyklen = 400 clock cycles = 400 takte.

von Yves M. (magnyves)


Lesenswert?

da ist nett danke es kann mir helfen..

von Yves M. (magnyves)


Lesenswert?

für die Zeitintervalle , kann ich eine Timer benutzen?

von Michael M. (Gast)


Lesenswert?

ja, das ist der richtige ansatz

von Yves M. (magnyves)


Lesenswert?

Berechung Timer 0 Reloadwert:

              T_overflow = 50ms
              Bei 0,6µs pro Zählschritt entspricht dies somit
              50000µs / (400*0,6µs) = 208,333333 Zählschritten. ...
              gewählt(209)
              TL0 = 0x0D1h
              TH0 = 0x00

Ist die Berechnung so richtig?

von Michael M. (Gast)


Lesenswert?

nein. mehr kann wirklich nicht verraten werden...

von Maus (Gast)


Lesenswert?

Hier der Ablaufplan, Yves:
1
->Schnittstellen initialisieren
2
->Timer so einstellen, dass er nach 50ms überläuft.
3
->Endlosschleife: 
4
->   Wurde im Timer-Überlauf ein Zeichen empfangen? Wenn nicht, dann aus der ->   Endlosschleife springen!
5
->Ende Endlosschleife
6
->
7
->Es wurde aus der Endlosschleife gesprungen, also kein Zeichen empfangen!
8
->400 Takte lang den Reset-Pin des anderen Controllers auf LOW ziehen (z.B. mit einem Timer, oder Reset LOW setzen, dann 399 nop's, dann Reset HIGH setzen, oder auch mit einer Schleife, die 400 Takte benötigt)
9
-> Auf seriellen Empfang warten: Dann wieder zurück zur Endlosschleife!
10
11
->Im Timer-Überlauf: Prüfen, ob ein Zeichen empfangen wurde!
Dein Programm soll im Grunde überprüfen, ob der andere Controller noch 
lebt! Gibt er kein Lebenszeichen mehr von sich (innerhalb von 50ms wurde 
kein Zeichen empfangen), so soll er neu gestartet werden. Das geschieht 
dadurch, dass der Reset-Pin des überwachten Controllers für einige Zeit 
auf LOW gezogen wird. Diese Zeit wurde in der Aufgabe als "400 Takte" 
vorgegeben.
Gibt er danach wieder ein Lebenszeichen von sich, wird die Überwachung 
fortgesetzt!

von Yves M. (magnyves)


Lesenswert?

danke Maus..
so eine erklärung brauchte ich... es ist mir sehr hilfreich

von Falk B. (falk)


Lesenswert?

@  Michael M. (ad-rem)

>400 maschinenzyklen = 400 clock cycles = 400 takte.

Nöö, keinesfalls, erst recht nicht beim 8051.

von Michael M. (Gast)


Lesenswert?

Falk Brunner schrieb:
> @  Michael M. (ad-rem)
>
>>400 maschinenzyklen = 400 clock cycles = 400 takte.
>
> Nöö, keinesfalls, erst recht nicht beim 8051.

grade nochmal nachgeschaut. ein NOP braucht auch auf dem 8051 einen 
takt. bei 400 NOPs hab ich sprünge und verzweigungen mal weggelassen.

von Route_66 (Gast)


Lesenswert?

...aber daran denken: Quarztakt <> Maschinentakt!

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.