Nicht angemeldet. · Kennwort vergessen · Registrieren

Alle Beiträge von LEP (9)

Thema: juli 2009!  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Hast Recht. Dann war der Stoff damals anders als heute. Wir haben weder UNIX noch Prozesse gemacht. Dementsprechend wird das auch nicht abgefragt werden.
Thema: juli 2009!  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7549
Kann es sein, dass du eine SPiC Klausur erwischt hast? Die haben mehr Stoff als GSPiC Klausuren.

Bei der b) hast du Recht.
Thema: Klausur Juli 2009 Aufgabe 3  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7547
Für die vier Kategorien wieder die Folie 12-5 konsultieren. https://www4.cs.fau.de/Lehre/SS16/V_GSPIC/Vorlesung/Folien…

bei der c) einfach die Tabelle abschreiben.

bei d)
Bei lokalen Variablen kann die ISR nicht auf die Variablen zugreifen. Daher gibt es auch keine Nebenläufigkeitsprobleme.

Allgemein gibt es ein Nebenläufigkeitsproblem, wenn eine ISR eine Variable schreibt, evtl auch beim auslesen.

Bei globalen nicht static Variablen können alle Module auf die Variable zugreifen und damit alle ISRs die in irgendeinem von denen definiert sind.

Bei globalen static Variablen kann nur die ISR der eigenen Moduls darauf zugreifen.
Dieser Beitrag wurde am 20.07.2016, 12:16 von LEP verändert.
Thema: Static Funktionen  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7542
static bei Funktionen und globalen Variablen schränkt die Sichtbarkeit auf dein c-File ein.

Da du in der Klausur das Hauptprogramm schreibst ist das static nicht unbedingt notwendig. Wenn du es hinschreibst machst du allerdings auch nichts falsch. Deine ISR und main dürfen halt nicht static sein.

Folie 12-5 hat eine Übersicht mit den Sichtbarkeiten. Die Funktionen sind hier genau so sichtbar, wie globale Variablen.
https://www4.cs.fau.de/Lehre/SS16/V_GSPIC/Vorlesung/Folien…
Thema: Klausur Juli 2013 Aufgabe 3!  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7541
a)
   (1) Das Ergebnis ist zwischen 0 und 99, da nicht bekannt ist, wie viele Interrupts durch den Tastendruck ausgelöst werden.
   (2) und (3) hast du Recht. Du musst halt an die Begründung denken.(fallende flanke->drücken; beide Flanken ->drücken + loslassen)


b)
Hardwareseitig entprellt bedeutet, dass das Signal welches der Microkontroller erhält so gedämpft wird, dass ein Knopfdruck nur eine Flanke wird. Wenn das nicht der Fall ist, schwingt das Signal erstmal so stark, dass man unter umständen mehrere Flankenwechsel detektiert.
->(1)-(3) bringt ein Ergebnis zwischen 0 und 99, weil nicht bekannt ist, wie viele Interrupts geworfen werden.


c)
eine lokale static Variable hält ihren Wert auch, wenn ihr Block(in dem Fall die Funktion) verlassen wird. Wenn man das static weglässt, wird jedes mal eine Variable namens counter und dem Wert 100 angelegt. Das Display zeigt also immer 99.
Thema: 2010 03 3.3a  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7540
Jap. Zusammengefasst ist ein Tabelle auf Folie 12-5.

https://www4.cs.fau.de/Lehre/SS16/V_GSPIC/Vorlesung/Folien…
Thema: 2012 07  3c  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7539
insgesamt gibt es 3 Einträge in coords. Diese bestehen jeweils aus einem vect. Ein vect besteht aus einem x und einem y, welche jeweils 8 Bit groß sind(-> 2 mal eine Speicherzelle). Also zeigen die  cords[0] - cords[2] auf die 1.,3.,5. Speicherzelle und da jeweils x und y ergänzen.

ein Array array[x] ist nichts anderes als ein Zeiger auf den x. Eintrag(Informatiker fangen bei 0 an zu zählen). Also zeigt pos=&coords[1] auf den 2. Eintrag des Arrays(3.Speicherzelle).

pos++ zählt einmal um so viel hoch, wie das struct von pos groß ist. vect braucht 2 Speicherzellen -> pos wird um 2 hochgezählt. pos nachher zeigt also auf die 5. Speicherzelle.
Thema: GSPIC Aufgabe 3c Juli 2014  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7536
schau dir mal die Folien 12-13 - 12-16 im 2. Foliensatz an.(Eigentlich das ganze Kapitel 12. Aber in den Folien 12-13 - 12-16 steht alles drin, worauf du achten musst)

2.Foliensatz >> https://www4.cs.fau.de/Lehre/SS16/V_GSPIC/Vorlesung/Folien…

Wenn du dir das durchgelesen hast wäre es gut, wenn du sagst, was du nicht genau verstehst.
Thema: GSPIC Aufgabe 3c Juli 2014  im Forum: 2. Semester Grundlagen der systemnahen Programmierung in C
LEP
Mitglied seit 12/2014
9 Beiträge
Antwort auf Beitrag ID 7534
Das funktioniert genau so, wie die Übungsaufgabe, die in der letzten Übung gemacht wurde.

In der netzwerk.h stehen alle Deklarationen und Konstanten, die für andere Module sichtbar sein sollen. Allerdings keine Implementierungen. Daher die Deklarationen am besten durch ein ; dahinter als solche kennzeichnen. Sonst ist nicht klar, ob du sie dort implementieren willst oder nur deklarierst.
void send(char);
char receive(void);

In der main.c und netzwerk.c fehlt das #include netzwerk.h

main.c braucht eine void main(void){...} Funktion.

netzwerk.c muss alles implementieren, was in der netzwerk.h steht. Also:
void send(char){...}
char receive(void){...}

Die Variablen und Funktionen, die nur innerhalb der netzwerk.c gebraucht werden müssen static sein. Also:
static char buf[32];
static void receive_irq(void){...}
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Weitere Zeichen:
Gehe zu Forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen