Not logged in. · Lost password · Register

The_Tricker
Member since Jul 2013
12 posts
Subject: Multiple Choice
Juli 2008:
a) Welche Aussage zu zeigern ist richtig?
Ausschlussverfahren:
2 ist wurde mir mal gesagt, dass es falsch ist. aber ich weiß nicht genau wie so (wäre für erklärung dankbar)
3 ist ja müll.
und 4 ist müll, weil die Zeiger ja immer im bezug auf ihren Typ verwendet werden.

also ist die 1 richtig oder?

d) Welche Der folgenden Aussagen bzgl der Interruptsteuerung ist richtig ?
Ausschlussverfahren
1. ist falsch
4. ist falsch
3. würde ich auch falsch sagen, weil da man doch nie abgefragt MUSS oder ?
Meine lösung wäre  2.

f) Welche Aussage zu folgender Funktion ist richtig?
int *foo() {
static int bar = 0;
bar++;
return &bar;
}

1. müll
2. bar ist static => müll
3. bin ich mir nicht sicher. Aber es bleibt doch eigtl nur der Speicherplatz reserviert, nicht die Variable selber?
4. klingt auch sinnvoll. Im zweifelsfall würde ich die hier ankreuzen.
Also ich schwanke noch zwischen 3. und 4.

g) Was ist keinesfalls eine Eigenschaft eines Hardware-Timers?
1. stimmt
4. stimmt
2. kann ein hardware timer überlaufen? klingt aber sonst schon sinnvoll
3. würde ich ankreuzen. Ich weiss, dass durch diese Prescalereinheit die Taktrate des Timers GETEILT werden kann. Dann kann sie dadurch doch nicht erhöht werden oder?

März 2012
a) Welche Aussage zum Thema Polling / Interrupts ist richtig?
3 oder 4
3. klingt logisch, weil die flankengesteuerten Interrupts doch super schnell passieren. die erwischt man doch mit Polling gar nicht, oder?
4. Polling kann doch unheimlich viel speicher verbrauchen, gerade wenn es sehr fein eingestellt ist, also stimmt die aussage damit? hat das was mit den Geräteereignissen zu tun?


Freue mich auf eine Antwort
The_Tricker
Member since Jul 2013
12 posts
Hier noch die Fragen:
März 2012
a) Welche Aussage zum Thema Polling und Interrupts ist richtig?
1 Beim Pollen eines Gerätes muss man selektiv dessen Interrupts sperren,
um explizit Daten zu synchronisieren.
2 Interrupts haben den Nachteil, dass sie nicht mit Präprozessormakros funktionieren.
3 Geräte, die flankengesteuerte Interrupts auslösen können, lassen sich grundsätzlich
nicht pollen.
4 Bei hochfrequenten Geräteereignissen erzeugt Polling eine hohe CPU-Last


Juli 2008

a) Welche Aussage zu Zeigern ist richtig?
❏ Die Übergabesemantik für Zeiger als Funktionsparameter ist callby-
value.
❏ Die Übergabesemantik für Zeiger als Funktionsparameter ist call-by-reference.
❏ Ein Zeiger kann zur Manipulation von schreibgeschützten Datenbereichen verwendet
werden.
❏ Zeiger vom Typ void* sind am besten für Zeigerarithmetik geeignet, da Sie
kompatibel zu jedem Zeigertyp sind.

d) Welche der folgenden Aussagen bzgl. der Interruptsteuerung trifft zu?
❏ Pegel-gesteuerte Interrupts werden beim Wechsel des Pegels ausgelöst,
daher der Name.
❏ Interrupts sind eine Besonderheit von AVR-Mikroprozessoren. Auf anderen
Architekturen kommen POSIX-Signale zum Einsatz.
❏ Pegelgesteuerte Interrupts müssen durch Polling des Pegels abgefragt werden.
❏ Wurde gerade ein Flanken-gesteuerter Interrupt ausgelöst, so muss erst ein
Pegelwechsel der Interruptleitung stattfinden, damit erneut ein Interrupt ausgelöst
werden kann.


f) Welche Aussage zu folgender Funktion ist richtig?
int *foo() {
static int bar = 0;
bar++;
return &bar;
}
❏ Die Funktion liefert einen Zeiger auf die lokale Variable bar zurück. Dies ist in
C nicht zulässig und führt zu einem Übersetzungsfehler.
❏ Beim Verlassen der Funktion foo() wird die automatic-Variable bar vom Stack
entfernt und der Zeiger verliert seine Gültigkeit. Ein Zugriff durch den Aufrufer
führt zu zufälligen Ergebnissen.
❏ Die Variable bar ist über die Laufzeit der foo()-Funktion hinaus gültig. Daher
kann der zurückgelieferte Zeiger sicher vom Aufrufer verwendet werden.
❏ Die Variable bar enthält beim Verlassen der foo()-Funktion immer den Wert 1,
da bar bei jedem Aufruf von foo() mit 0 initialisiert wird.


g) Was ist keinesfalls eine Eigenschaft eines Hardware-Timers?
❏ Ein Hardware-Timer ist ein Register welches mit der steigenden
oder fallenden Flanke eines angelegten Taktes inkrementiert wird.
❏ Ein Hardware-Timer kann beim Überlauf einen Interrupt generieren.
❏ Durch Vorschaltung einer Prescalereinheit kann die Taktrate des Timers erhöht
werden.
❏ Eine CTC-Einheit (Clear Timer on Compare Match) kann im Zusammenspiel
mit einer Output-Compare-Einheit zur periodischen Generierung von Interrupts
verwendet werden.
killermiller
Member since May 2011
41 posts
In reply to post #1
Quote by The_Tricker:
Juli 2008:
a) Welche Aussage zu zeigern ist richtig?
Ausschlussverfahren:
2 ist wurde mir mal gesagt, dass es falsch ist. aber ich weiß nicht genau wie so (wäre für erklärung dankbar)
3 ist ja müll.
und 4 ist müll, weil die Zeiger ja immer im bezug auf ihren Typ verwendet werden.
C kann kein direktes call-by-reference, also ist 2 wirklich Müll
3 ist Müll. Sichtbarkeit kann man -wenn man die Adresse des Speichers weiß- umgehen. Echten Speicherschutz nicht.
Und 4 ist auch Müll.
Bleibt noch zwei, weil die Übergabsemantik in C immer call-by-value ist.

Quote by The_Tricker:
also ist die 1 richtig oder?

d) Welche Der folgenden Aussagen bzgl der Interruptsteuerung ist richtig ?
Ausschlussverfahren
1. ist falsch
4. ist falsch
3. würde ich auch falsch sagen, weil da man doch nie abgefragt MUSS oder ?
Meine lösung wäre  2.
:)
1 ist falsch, es ist genau andersrum
3 ist falsch, Polling ist genau das Gegenteil von Interrupts.
Quote by The_Tricker:
f) Welche Aussage zu folgender Funktion ist richtig?
int *foo() {
static int bar = 0;
bar++;
return &bar;
}

1. müll
2. bar ist static => müll
3. bin ich mir nicht sicher. Aber es bleibt doch eigtl nur der Speicherplatz reserviert, nicht die Variable selber?
4. klingt auch sinnvoll. Im zweifelsfall würde ich die hier ankreuzen.
Also ich schwanke noch zwischen 3. und 4.
1 ist wirklich Müll.
2 ist Müll, weil die Variable eben wegen static erhalten bleibt.
4 ist Müll, weil die Variable wegen static erhalten bleibt.
bleibt nur noch drei. Mit dem Zeiger greifst du direkt auf den Speicher zu. Ob der Speicher noch über eine Variable erreichbar ist oder nicht mal ner Variable zugeordnet ist, ist völlig egal.
Wahrscheinlich könntest du das sogar mit einer nicht-statischen lokalen Variable machen, auf die Gefahr hin, dass an der Stelle, an die der Zeiger zeigt, danach nur noch Schrott steht. Aber vielleicht produziert das auch schon beim Kompilieren eine Warnung, will mich nicht zu weit aus dem Fenster lehnen...
Quote by The_Tricker:
g) Was ist keinesfalls eine Eigenschaft eines Hardware-Timers?
1. stimmt
4. stimmt
2. kann ein hardware timer überlaufen? klingt aber sonst schon sinnvoll
3. würde ich ankreuzen. Ich weiss, dass durch diese Prescalereinheit die Taktrate des Timers GETEILT werden kann. Dann kann sie dadurch doch nicht erhöht werden oder?
zu 2: Der Interrupt wird entweder bei nem Compare ausgelöst oder eben, wenn das Register, das hochgezälht wird, überläuft...von daher ist das durchaus möglich.
Also 3 stimmt, genau mit der angegebenen Begründung, Prescaler verlangsamt den Timer-Takt.
Quote by The_Tricker:
März 2012
a) Welche Aussage zum Thema Polling / Interrupts ist richtig?
3 oder 4
3. klingt logisch, weil die flankengesteuerten Interrupts doch super schnell passieren. die erwischt man doch mit Polling gar nicht, oder?
4. Polling kann doch unheimlich viel speicher verbrauchen, gerade wenn es sehr fein eingestellt ist, also stimmt die aussage damit? hat das was mit den Geräteereignissen zu tun?


Freue mich auf eine Antwort
Pollen von Interrupt-Qellen ging doch z.B. bei der Geschicklichkeitsspiel-Aufgabe ganz gut...
Also kann man Interrupt-Quellen (teilweise) sehr wohl pollen.
CPU-Last hat nicht wirklich was mit Speicher zu tun. Aber wenn du eine hochfrequente Quelle pollen willst, musst du das eben oft tun, damit dir keine Ereignisse verloren gehen.
The_Tricker
Member since Jul 2013
12 posts
danke soweit. Aber was ist es jetzt bei der hier:

März 2012
a) Welche Aussage zum Thema Polling und Interrupts ist richtig?
1 Beim Pollen eines Gerätes muss man selektiv dessen Interrupts sperren,
um explizit Daten zu synchronisieren.
2 Interrupts haben den Nachteil, dass sie nicht mit Präprozessormakros funktionieren.
3 Geräte, die flankengesteuerte Interrupts auslösen können, lassen sich grundsätzlich
nicht pollen.
4 Bei hochfrequenten Geräteereignissen erzeugt Polling eine hohe CPU-Last


Stimmt jetzt die 4, weil man so oft pollen muss ?
killermiller
Member since May 2011
41 posts
ja...
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O :troll:
Special characters:
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen