Not logged in. · Lost password · Register

Page:  1  2  3  next 

All posts by King-Chris (31)

topic: Bücherverkauf für die GET-Vorlesungen (subventioniert aus Studiengebührenausgleichszahlungen)  in the forum: Studium & Uni FSI EEI
King-Chris
Member since Oct 2012
31 posts
Falls noch wer sucht und hier reinschaut, ich gebe meins, wie unbenutzt für 20 Euro ab !
topic: Kennwort EMF 1 Aufgaben / Klausur Sommersemester  in the forum: 4. Semester Elektromagnetische Felder 1
King-Chris
Member since Oct 2012
31 posts
Subject: Kennwort EMF 1 Aufgaben / Klausur Sommersemester
Kann mir jemand das Kennwort für EMF 1 zukommen lassen ?

Hat jemand jetzt nach dem sommersemester emf 1 geschrieben ? War es diesmal lösbarer als im Frühjahr ?
topic: Schwerpunkte GET 2 Klausur  in the forum: 2. Semester Grundlagen der Elektrotechnik 2
King-Chris
Member since Oct 2012
31 posts
Subject: Schwerpunkte GET 2 Klausur
Wurden für die diesjährige Klausur auch irgendwelche Schwerpunkte gesetzt bzw. die Punkteverteilung schon angegeben ?
Was wird nicht drankommen ?
topic: Wertebereichüberschreitung einer uint Variable  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6107
Irgendwo habe ich aber mal folgendes gemacht : War das dann falsch ?

uint8_t=(sb_adc_read (POTI)<<2)

Damit sollten nur die Höherwertigen Bytes des 10 bit Werts vom ADC Read kopiert werden.

Habe ich da was falsch im Kopf bzw. ist das so falsch und geht nicht ?
topic: Klausur März 2012 Aufgabe 2a (dimmer)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6127
So kompliziert :D ? Könntest dus nochmals kurz erklären, was da jetzt genau gemacht wird. Ich hätte für die Aufgabe leider auch einfach keine bessere Idee.
topic: Tankkontrolle - März 2010  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 2635
Quote by 5er on 2011-07-29, 18:22:
Einfach mal zum drüberschauen.
alles was auf da angabe steht hab ich nicht mehr dazu geschrieben

  1. /*
  2. * Tankkontrolle.c
  3. *
  4. *  Created on: 29.07.2011
  5. *      Author: Manuel
  6. */
  7.  
  8. static volatile uint8_t abgespert = 0;
  9. static volatile uint16_t fill = 0;
  10.  
  11. ISR( INT1_vec) {
  12.     abgespert + 1;
  13.     abgespert %= 2;
  14.     //0 zu 1 oder 1 zu 0
  15. }
  16. ISR( INT0_vec) {
  17.     fill++;
  18.     if (fill >= FILL_MAX) {
  19.         PORTD &= ~(1 << 0);
  20.     }
  21. }

Bei den ISR habe ich nicht wirklich eine bessere Idee, aber dieses abgesperrt+1 und dan %2 wird doch nicht funktionieren oder ? Da kommt doch eigentlich immer 0 raus, man addiert 1 auf 0 teilt durch 2, hat also wieder 0 beim nächsten Durchlauf.
topic: Parameterübergabe über den Stack (Klausur Juli 2009 A3 b))  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6052
Passt das als Antwort dann so ? :

Noch in der main werden die aktuellen Parameter in den Stack abgelegt. Daraufhin wird noch die main return Adresse abgelegt und es folgt ein neuer Stack-Frame.

Dort wird der main Framepointer abgelegt und der Inhalt der Funktion ausgeführt. Zudem wird ein Array angelegt ( ist das immer so ? ) und in den Adressen der jeweiligen Elemente des Arrays werden die Adressen der aktuellen Parameter, die in der main gespeichert sind, abgelegt.


Ist das zu kompliziert beschrieben oder kommt das einer richtigen Antwort nahe ? Oder habe ich etwas falsch verstanden ?
topic: 10 bit Wert vom Poti gleichmäßig aufteilen / Nebenläufigkeit und Variablen verschiedener Kategorien  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6088
Ist die Antwort von the Tricker auch schon ausreichend ?

Es gab nochmals eine Frage über den Unterschied von lokalen und globalen static Variablen im Bezug auf Nebenläufigkeit in einem Programm. Die gibt aber 3 Punkte.

Meine Antwort wäre folgende bisher :

Die lokale static-Varibale ist für den Interrupt Handler gar nicht sichtbar. Somit kann es hier auch nicht zu Nebenläufigkeit kommen.
Im Gegenzug dazu kann es bei der globalen static-Variable zu Nebenläufigkeit kommen ( Ich denke mal ein Programm besteht aus vielen Modulen, deshalb würde ich noch erwähnen : Innerhalb dieses Moduls)
topic: Klausur März 2012 Aufgabe 2a (dimmer)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 5989
Quote by ingonör on 2013-07-20, 22:12:
/* Unterbrechungsbehandlung */
ISR (INT0_vect) {   
    if (stufe == 0) {   
        stufe = 1;
        position = (position + 1) % 8;
    } else if (stufe < 10) {
        stufe = stufe++;
    }
}

ISR (INT1_vect) {
    if (stufe > 0) {
            stufe--;
    }
}

Aber bei position = (position + 1) % 8;  wird doch immer 1 als Ergebnis rauskommen, da man am Ende durch 8 teilt. Den Schritt verstehe ich nicht.

Du wilst ja damit von der 8. LED wieder zur 1. springen, aber geht das wirklich einfach ohne if/else-Schleife ?
This post was edited 2 times, last on 2013-07-25, 18:12 by King-Chris.
topic: März 2013 1a.) und 1b.)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6097
2. ist richtig.

Es handelt sich ja um globale Variablen und ohne static sind diese in allen Modulen sichtbar.
topic: Steigende/Fallende Flanke an einem Pin, Vorinitialisierung als Eingang/Ausgang (März 2010 2a: Tankkontrolle)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6099
Also Punkte bekommst du eigentlich in jedem Fall, sofern es läuft und stimmt. So wurde es zumindest uns gesagt.

Die Option mit der du am wenigstens schreiben musst wäre die Hexadezimalschreibweise , das sieht warscheinlich auch am schönsten aus.

Also z.B. DDRD &= ~(0x0E)
topic: März 2013 1a.) und 1b.)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6095
Am Besten du schaust dir die Folien 13-6 an.

Dort ist eben ein Codebeispiel gegeben, wie man 2 Variablen durch die Verwendung von Zeigern vertauschen kann ;)
topic: März 2013 1a.) und 1b.)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
In reply to post ID 6092
Bei 1a) müsste es 2. sein. ( Du schreibst aber es ist 3. aber 3. ist es eher auch nicht, irgendwo hast du dich vertan ;) )
Die Übergabe ist immer noch call-by-value, allerdings kann call-by-reference nachgebildet werden.

Die b) stimmt so.
topic: Verschiedene Multiple Choice Fragen  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
Subject: Verschiedene Multiple Choice Fragen
Bin mir zwar ziemlich sicher bei meinen Antworten, würde sie aber gerne trotzdem bestätigt haben :

1. a) Welche der folgenden Aussagen über den C-Präprozessor ist
richtig?
❏Der Präprozessor ist eine Softwarekomponente, welche Java-Klassen durch C-Funktionen ersetzt, die dann von einem C-Compilerübersetzt werden.
❏Der Präprozessor optimiert Makros durch Zeigerarithmetik.
❏Nach dem Übersetzen und dem Binden müssen C-Programme durch den Präprozessor nachbearbeitet werden, um Makros aufzulösen.
❏Die Syntax von Präprozessoranweisungen ist unabhängig vom Rest der Sprache C

Hier müsste 4. richtig sein, Makros werden ja vorher aufgelöst und ich denke mal Makros werden nicht durch Zeigerarithmetik optimiert oder doch ?


Wozu dient das
#ifdef-Konstrukt in C?
❏Es kann alternativ zu if-Abfragen eingesetzt werden.
❏Man kann damit Programmteile bei der Übersetzung ausblenden.
❏Es kann eingesetzt werden, um sicherzustellen, dass ein Programmteil ein definiertes Ergebnis liefert.
❏Es überprüft, ob die danach angegebenen Variablen definiert wurden.

Also 1. und 3. ist sicher falsch. Bei 4. frage ich mich ob mit Variablen auch Makros gemeint sind, wenn ja stimmt ja sicherlich 4. , aber ich glaube in der led.c konnte man damit auch ganze Programmteile ausbleden, bin mir aber nichtmehr sicher, was man da verwenden sollte, aus meiner Abgabe hatte ich es dann ja herausgestrichen, sonst würde ich es nachschauen.


Welche der folgenden Aussagen zum Binden eines Programms ist richtig ?
❏Auf einer Mikrocontroller-Plattform wird normalerweise dynamisch gebunden, weil dies Speicherplatz spart.
❏Der Binder löst #include-Anweisungen in einem C-Programm auf, indem er sie durch den Inhalt der einzubindenden Datei ersetzt.
❏Der Binder fügt Objektdateien und Bibliotheken zu einer ausführbaren Datei zusammen.
❏Beim Binden werden Zugriffe aus einem C-Modul auf globale static-Variableneines anderen C-Moduls optimiert.

Bei 2. und 3. bin ich mir nicht sicher, was von beiden passt. Allerdings müsste die #include-Anweisung ja schon vom Präprozessor ausgeführt werden. Zählt diese denn noch zum Binder ?

3. wird dann wohl stimmen, allerdings ist mir das Wort Bibliothek in diesem Zusammenhang eigentlich unbekannt. Der Linker fügt aber Objektdateien zusammen.
topic: 10 bit Wert vom Poti gleichmäßig aufteilen / Nebenläufigkeit und Variablen verschiedener Kategorien  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
King-Chris
Member since Oct 2012
31 posts
Subject: 10 bit Wert vom Poti gleichmäßig aufteilen / Nebenläufigkeit und Variablen verschiedener Kategorien
Während der Konfigurationsphase wird ein Countdown-Anfangswert durch das
Potentiometer eingestellt, dessen Wert mit der Bibliotheksfunktion
uint16_t poti_read(void);
abgefragt werden kann. Die Funktion liefert einen 10-Bit-Wert zurück. Dessen Wer-
tebereich soll gleichmäßig auf die Werte von 1 und 8 abgebildet werden.

Passt folgende einfache Idee ?

uint8_t wert = poti_read / 128 +1 ;

Rechts rechnet er ja mit 16bit und am Ende kommen ja nur Werte von 1 bis 8 (also sind 8 bit völlig ausreichend) heraus. Wird in C eigentlich immer so gerundet, dass Nachkommastellen abgeschnitten werden ? Dann hätte ich ja als höchsten Wert 1023/128 = 7,999 und das wäre dann quasi 7.

Oder gibt es eine bessere Idee dafür ?

Und zur 2. Frage :

b) Welche Bedeutung haben die unterschiedlichen Gültigkeitsbereiche von Variablen
in einem C-Programm in Bezug auf Nebenläufigkeit bei Interrupts (d. h. wie sind
Variablen der verschiedenen Kategorien von Nebenläufigkeitsproblemen betroffen
und warum ist dies so)? (4 Punkte)

Bei lokalen Variablen könnte es sein, dass sie einfach verloren gehen.
Man sollte ja auf jeden Fall Variablen mit volatile deklarieren, weil ansonsten Änderungen vom ISR in der main nicht sichtbar sind. ( Hier weiß ich allerdings nicht, ob das überhaupt zur Frage passt)
Zudem sollte man die Variablen ja mit static deklarieren, das habe ich allerdings noch nicht ganz verstanden warum.

Kann mir jemand die Fragen beantworten und evtl. ergänzen ? Im Script finde ich zwar die Tabelle zur Sichtbarkeit und Lebensdauer von Variablen und natürlich zu volatile, aber der Zusammenhang mit Nebenläufigkeit erschließt sich mir bis auf die Verwendung von volatile nicht.
This post was edited on 2013-07-23, 16:54 by King-Chris.
Close Smaller – Larger + Reply to this post:
Special characters:
Page:  1  2  3  next 
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen