Not logged in. · Lost password · Register

Page:  1  2  3  4  5  next 

All posts by ingonör (67)

topic: SPiC Klausur 26.7 fertig Korrigiert - Ergebnisse gibt es nächste Woche  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
Fein!
topic: Klausur März 2012 Aufgabe 2a (dimmer)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6118
Quote by King-Chris:
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.

So, das war natürlich Blödsinn. Ohne Abfrage kommt man nicht weit. Ich denke, so sollte es funktionieren:
  1. position = (++position == 8) ? 1 : position;
topic: klausur maerz 2010 (multiple choices fragen d))  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 5924
Da gibt es noch eine Frage, die ich nicht sicher beantworten kann.

Skizzieren Sie die Schritte, die durchzuführen sind, um aus einem C-Quellprogramm ein lauffähiges Programm auf einem Mikrocontroller zu erhalten.

Wollt ihr da sowas sehen?

[Image: https://dl.dropboxusercontent.com/u/7261736/Foren/asdihj.png]
topic: Klausur März 2012 Aufgabe 2a (dimmer)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6047
Quote by ingonör on 2013-07-23, 12:57:
Aus
  1.         wait(512 * 1 - stufe / 10);
wird
  1.         wait(512 * (1 - stufe / 10));


Verdammte Axt! Und wie wäre es damit?

  1. wait((512 * (10 - stufe)) / 10)

Edit: Sorry, habe deinen Beitrag erst jetzt gelesen. Warum sollte bei der Modulo-Rechnung immer 1 rauskommen? Die spuckt in dem Fall Zahlen zwischen 0 und 7 aus.
Edit2: Ach jetzt check ich, was du meinst. Ja, so wie es gerade da steht ist das ziemlicher Quatsch! Ich schaue mir das später nochmal in Ruhe an. Ist jetzt auch schon ein paar Tage her!
topic: Klausur 2013-03 (Aufgabe 2a - gate)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6115
Exakt!
topic: Klausur 2013-03 (Aufgabe 2a - gate)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6112
Quote by FanFan:
Ist das eine if-Abfrage inklusive Veränderung des Status von kipp?

Sozusagen, ja! Es handelt sich hier bei um einen bedingten Ausdruck.
topic: Klausur Juli 2012 (Aufgabe 3 d))  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6018
Meine Antwort würde lauten:
Sowohl im Hauptprogramm, als auch im Interrupt-Handler kann auf die globale Variable schreibend zugegriffen werden, wodurch Nebenläufigkeit entsteht.
Ein Interrupt-Handler kann auf eine lokale Variable einer Funktion/des Hauptprogramms nicht zugreifen, was Nebenläufigkeit ausschließt.
topic: Klausur 2010-07 (Aufgab 2b backuplist)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6077
Die Seite half mir recht gut.

http://openbook.galileocomputing.de/c_von_a_bis_z/015_c_st…
topic: Inialisierungsfunktion  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6056
Tut mir leid:
Ich muss zugeben, für einen Maschinenbauer, der wenig bis gar nichts mit Elektrotechnik am Hut hat, war dieser Beitrag leider nicht sehr informativ. :-/
topic: Klausur April 2009 (Aufgabe 2a: Snake)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6048
Danke!  :cool:
topic: Klausur März 2012 Aufgabe 2a (dimmer)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 5989
Aus
  1.         wait(512 * 1 - stufe / 10);
wird
  1.         wait(512 * (1 - stufe / 10));


morty, du hast Adleraugen. ;)
topic: Inialisierungsfunktion  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6031
Jetzt von mir nochmal eine Frage für Dumme:

Taster gegen Masse verbunden: Interrupt bei fallender Flanke.
Taster mit Masse verbunden: Interrupt bei steigender Flanke.

Richtig?
topic: Juli 2010 Konfigurierbarer Würfel  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 2672
Hi,

mag mal jemand über meinen Code schauen? Muss noch mehr in der init() geschehen?

Vielen Dank und liebe Grüße
ingonör

  1. #include <avr/io.h>
  2. #include <avr/interrupt.h>
  3.  
  4. /* Funktionsdeklarationen, globale Variablen, etc. */
  5. static void init(void);
  6. static void wait(void);
  7. static void buttonHandler(void);
  8. static volatile uint8_t button = 0;
  9.  
  10. /* Funktion main */
  11. void main(void) {
  12.     /* Aufruf der Hardware-Initialisierung
  13.     und Initialisierung der Callback-Funktion */
  14.     init();
  15.     registerCallbackButton0(&buttonHandler);
  16.    
  17.     /* Initialisierungsphase */
  18.     uint8_t n = 0;
  19.     uint8_t max;
  20.     while(!button) {       
  21.         PORTC &= (1 << n);
  22.         if (n == 7)
  23.             PORTC |= 0xff;
  24.         max = n;
  25.         n = (n + 1) % 8;
  26.         wait();  
  27.     }
  28.     button = 0;
  29.        
  30.     /* Wuerfelphase */  
  31.     n = 0;
  32.     while(1) {   
  33.         PORTC &= (1 << n);
  34.         n = (n + 1) % max;
  35.         cli();
  36.         while(button) {
  37.             sei();
  38.             sleep_cpu();
  39.             cli();
  40.         }      
  41.         sei();
  42.         button = 0;
  43.     }
  44. /* Ende der main-Funktion */
  45. }
  46.  
  47. /* Initialisierungsfunktion */
  48. void init(void) {
  49.     DDRC |= 0xff;
  50.     PORTC |= 0xff;
  51.    
  52.     sei();
  53.     sleep_enable();
  54. }
  55.  
  56. /* Wartefunktion */
  57. void wait(void) {
  58.     volatile uint16_t i = 1000;
  59.     while(i--)
  60.         ;
  61. }
  62. /* Callbackfunktion fuer BUTTON0 */
  63. void buttonHandler(void) {
  64.     button = 1;
  65. }
topic: Klausur 2012/03 (Aufgabe 2b - dirstat)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6023
Weil ich schreibfaul bin. Ich benutze den Postinkrementoperator. Dadurch wird num noch in den "aktuelle" Array-Eintrag geschrieben und dann count erhöht, um evtl. weitere Eintrag in den "nächsten" Array-Eintrag zu schreiben.
topic: Klausur 2013-03 (Aufgabe 2b - compiledir)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
ingonör
Member since May 2013
67 posts
In reply to post ID 6017
Mache ich eigentlich in Zeile 31.
Close Smaller – Larger + Reply to this post:
Special characters:
Page:  1  2  3  4  5  next 
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen