klausur_vorbereitung

OP #1549453
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.
Gast #1549673
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!
Gast #1550065
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren