mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik klausur_vorbereitung


Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht 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
Autor: WLAN-Kabel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hausaufgaben -_-

Autor: Luftgitarre (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
warum? ist es das echt kinder sache?
ok dann sry

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja hausaufgabe

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
400 maschinenzyklen = 400 clock cycles = 400 takte.

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da ist nett danke es kann mir helfen..

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für die Zeitintervalle , kann ich eine Timer benutzen?

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, das ist der richtige ansatz

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nein. mehr kann wirklich nicht verraten werden...

Autor: Maus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier der Ablaufplan, Yves:
->Schnittstellen initialisieren
->Timer so einstellen, dass er nach 50ms überläuft.
->Endlosschleife: 
->   Wurde im Timer-Überlauf ein Zeichen empfangen? Wenn nicht, dann aus der ->   Endlosschleife springen!
->Ende Endlosschleife
->
->Es wurde aus der Endlosschleife gesprungen, also kein Zeichen empfangen!
->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)
-> Auf seriellen Empfang warten: Dann wieder zurück zur Endlosschleife!

->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!

Autor: Yves M. (magnyves)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke Maus..
so eine erklärung brauchte ich... es ist mir sehr hilfreich

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Michael M. (ad-rem)

>400 maschinenzyklen = 400 clock cycles = 400 takte.

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

Autor: Michael M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Route_66 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
...aber daran denken: Quarztakt <> Maschinentakt!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.