Not logged in. · Lost password · Register

All posts by hanzn (6)

topic: Beispielklausur 2006 (Aufgabe2)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
hanzn
Member since Jan 2011
6 posts
ehm, bin jetzt etwas verwirrt.. stimmt nur die deklaration nicht, oder noch etwas?
ohne das makro also:
  1. void setport (int port, char pins[]){
  2.     volatile uint8_t *portX;
  3.     if (port == 0){
  4.         *portX=&(*(volatile uint8_t*) (0x40));
  5.     } else if (port == 1){
  6.         *portX=&(*(volatile uint8_t*) (0x48));
  7.     } else if (port == 2){
  8.         *portX=&(*(volatile uint8_t*) (0x50));
  9.     } else if (port == 3){
  10.         *portX=&(*(volatile uint8_t*) (0x58));
  11.     }
  12.     for (int8_t i = 0; i<8; i++){
  13.         if(pins[7-i]== '0' ){
  14.             *portX &= ~(1<<i);
  15.         }else if(pins[7-i]== '1'){
  16.             *portX |= (1<<i);
  17.         }
  18.     }
  19. }
topic: Interrupt/Flanke  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
hanzn
Member since Jan 2011
6 posts
In reply to post ID 2785
Der erste Interrupt würde von einer fallenden flanke (Ventil öffnen) ausgelöst werden. Aber aus welchem Pin könnte man ansonsten generell den aktuellen Pegel ablesen, wenn man keine toggle-Variable verwendet?
topic: Beispielklausur 2006 (Aufgabe2)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
hanzn
Member since Jan 2011
6 posts
In reply to post ID 2766
alles klar, danke für die hilfe!
topic: Beispielklausur 2006 (Aufgabe2)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
hanzn
Member since Jan 2011
6 posts
In reply to post ID 2759
Ok, ich hab mir nochmal die Folien angeschaut und die Zuweisung verändert. Beim Setzen der Pins hat auch das Pointer-Zeichen gefehlt, oder? Hier der korrigierte code:

  1. #define PORT0 (*(volatile uint8_t*) (0x40))
  2. #define PORT1 (*(volatile uint8_t*) (0x48))
  3. #define PORT2 (*(volatile uint8_t*) (0x50))
  4. #define PORT3 (*(volatile uint8_t*) (0x58))
  5.  
  6. void setport (int port, char pins[]){
  7.     (volatile uint8_t) *portX;
  8.     if (port == 0){
  9.         *portX=&PORT0;
  10.     } else if (port == 1){
  11.         *portX=&PORT1;
  12.     } else if (port == 2){
  13.         *portX=&PORT2;
  14.     } else if (port == 3){
  15.         *portX=&PORT3;
  16.     }
  17.     for (int8_t i = 0; i<8; i++){
  18.         if(pins[7-i]== '0' ){
  19.             *portX &= ~(1<<i);
  20.         }else if(pins[7-i]== '1'){
  21.             *portX |= (1<<i);
  22.         }
  23.     }
  24.    
  25. }
topic: Beispielklausur 2006 (Aufgabe2)  in the forum: 2. Semester Grundlagen der systemnahen Programmierung in C
hanzn
Member since Jan 2011
6 posts
Subject: Beispielklausur 2006
Hey,
ich habe mich mal an der Aufgabe 2 versucht. Vor allem bei der Umsetzung von portX bin ich mir unsicher.. funktioniert das mit der Deklaration zu Beginn, dem Kopieren des PORT-Zeigers und was passt sonst nicht?

  1. #define PORT0 (*(volatile uint8_t*) (0x40))
  2. #define PORT1 (*(volatile uint8_t*) (0x48))
  3. #define PORT2 (*(volatile uint8_t*) (0x50))
  4. #define PORT3 (*(volatile uint8_t*) (0x58))
  5.  
  6. void setport (int port, char pins[]){
  7.     (volatile uint8_t) *portX;
  8.     if (port == 0){
  9.         portX=PORT0;
  10.     } else if (port == 1){
  11.         portX=PORT1;
  12.     } else if (port == 2){
  13.         portX=PORT2;
  14.     } else if (port == 3){
  15.         portX=PORT3;
  16.     }
  17.     for (int8_t i = 0; i<8; i++){
  18.         if(pins[7-i]== '0' ){
  19.             portX &= ~(1<<i);
  20.         }else if(pins[7-i]== '1'){
  21.             portX |= (1<<i);
  22.         }
  23.     }
  24.    
  25. }
topic: Lösungen zu den Übungen  in the forum: 2. Semester Experimentalphysik 2
hanzn
Member since Jan 2011
6 posts
Subject: Lösungen zu den Übungen
Hallo,

weiß jemand ob dieses Semester wieder die Lösungen der Übungsblätter nach ein paar Wochen hochgeladen werden?
Ich wundere mich gerade nur, weil es ja mittlerweile 3 Übungsblätter und noch immer keine Musterlösung gibt.
Close Smaller – Larger + Reply to this post:
Special characters:
Go to forum
Powered by the Unclassified NewsBoard software, 20110527-dev, © 2003-8 by Yves Goergen