Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
microcontrollertechnik:vorgaben_fuer_die_softwareentwicklung [2024/01/08 01:36]
mexleadmin [Anweisungsblöcke und Funktionen]
microcontrollertechnik:vorgaben_fuer_die_softwareentwicklung [2024/09/24 13:51] (aktuell)
mexleadmin
Zeile 34: Zeile 34:
                  AVR-USB-PROGI Ver. 2.0                  AVR-USB-PROGI Ver. 2.0
  
-Software:        Atmel Studio Ver. 7.0.1417+Software:        Microchip Studio Ver. 7.0.1417
  
 Funktion:        Diese Programm sol eine einfaches Beispiel der Ein- und Ausgabe am MiniMEXLE sein. Funktion:        Diese Programm sol eine einfaches Beispiel der Ein- und Ausgabe am MiniMEXLE sein.
Zeile 61: Zeile 61:
  
 =============================================================================*/ =============================================================================*/
-</code>+</sxh>
  
 ++++ ++++
Zeile 225: Zeile 225:
 // Variablen // Variablen
  
-const int       maxAnzSpieler   = 2;    // Maximale Anzahl der Spieler +const uint8_t   maxAnzSpieler   = 2;    // Maximale Anzahl der Spieler 
-uint8_t         gemesseneLaenge = 0;    // gemessene Länge in Meter +uint16_t        gemesseneLaenge = 0;    // gemessene Länge in Meter 
-unsigned char   gemesseneBreite = 0;    // gemessene Breite in Meter+uint8_t         gemesseneBreite = 0;    // gemessene Breite in Meter
 bool            zeichenAusgabe  = 1;    // Wahrheitswert zur Anzeige, ob bool            zeichenAusgabe  = 1;    // Wahrheitswert zur Anzeige, ob
                                         // ein Zeichen ausgegeben werden darf                                         // ein Zeichen ausgegeben werden darf
Zeile 268: Zeile 268:
 */ */
 { {
-    for( int aktuelleSchluesselPosition=ERSTE_SCHLUESSEL_POSITION; a<=LETZTE_SCHLUESSEL_POSITION; aktuelleSchluesselPosition++)+    for( uint8_t aktuelleSchluesselPosition=ERSTE_SCHLUESSEL_POSITION; a<=LETZTE_SCHLUESSEL_POSITION; aktuelleSchluesselPosition++)
     {                        // durchlaufe alle Schlüsselpositionen     {                        // durchlaufe alle Schlüsselpositionen
         if(schluesselArray[aktuelleSchluesselPosition]==schluessel) return aktuelleSchluesselPosition;         if(schluesselArray[aktuelleSchluesselPosition]==schluessel) return aktuelleSchluesselPosition;
Zeile 398: Zeile 398:
 |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1> |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1>
 ... ...
-    if (i==0) doZero;    // wenn 0 dann null +    if (i==0) doZero();    // wenn 0 dann null 
-    if (i==1) doOne;     // wenn 1 dann eins +    if (i==1) doOne();     // wenn 1 dann eins 
-    if (i==2) doTwo;     // wenn 2 dann zwei +    if (i==2) doTwo();     // wenn 2 dann zwei 
-    if (i==3) doThree;   // wenn 3 dann drei +    if (i==3) doThree();   // wenn 3 dann drei 
-    if (i==4) doFour;    // wenn 4 dann vier +    if (i==4) doFour();    // wenn 4 dann vier 
-    if (i==5) doFive;    // wenn 5 dann fünf+    if (i==5) doFive();    // wenn 5 dann fünf
 ... ...
  
Zeile 410: Zeile 410:
 ... ...
     switch(i) {     switch(i) {
-        case 1: doOne;   break;    // könnte alternativ auch +        case 1: doOne();   break;    // könnte alternativ auch 
-        case 2: doTwo;   break;    // über Pointer auf Funktionen +        case 2: doTwo();   break;    // über Pointer auf Funktionen 
-        case 3: doThree; break;    // wie Beispiel 3 gelöst +        case 3: doThree(); break;    // wie Beispiel 3 gelöst 
-        case 4: doFour;  break;    // werden +        case 4: doFour();  break;    // werden 
-        case 5: doFive;  break;+        case 5: doFive();  break;
         default: break;         default: break;
     };     };
Zeile 425: Zeile 425:
 ... ...
     switch(i) {     switch(i) {
-        case 1: doOne;   break;                // - die ersten beiden Cases +        case 1: doOne();   break;                // - die ersten beiden Cases 
-        case 2: doOne;   break;                //   haben die gleichen Konsequenzen +        case 2: doOne();   break;                //   haben die gleichen Konsequenzen 
-        case 3: doThree;doFour;doFive; break;  // - hier werden - je nach Zahl -  +        case 3: doThree();doFour();doFive(); break;  // - hier werden - je nach Zahl -  
-        case 4: doFour;doFive;         break;  //   nach und nach aufeinanderfolgende +        case 4: doFour();doFive()          break;  //   nach und nach aufeinanderfolgende 
-        case 5: doFive;                break;  //   Funktionen aufgerufen +        case 5: doFive()                   break;  //   Funktionen aufgerufen 
-        case 6: doOne;   break;                // - hier haben mehrere Cases +        case 6: doOne();   break;                // - hier haben mehrere Cases 
-        case 7: doOne;   break;                //   haben die gleichen Konsequenzen +        case 7: doOne();   break;                //   haben die gleichen Konsequenzen 
-        case 8: doOne;   break;                //   +        case 8: doOne();   break;                //   
-        case 9: doOne;   break;                //  +        case 9: doOne();   break;                //  
         default: break;         default: break;
     };     };
Zeile 443: Zeile 443:
     switch(i) {     switch(i) {
         case 1:         case 1:
-        case 2:                               // Einzelne Zahlen können mit case's untereinander ... +        case 2:                                 // Einzelne Zahlen können mit case's untereinander ... 
-        case 6 ... 9:      doOne;   break;    // ... und Gruppen mit '...' kombiniert werden +        case 6 ... 9:      doOne();   break;    // ... und Gruppen mit '...' kombiniert werden 
-        case 3:            doThree;           // Ohne Break werden alle folgenden Befehle bis zum nächsten Break ausgeführt +        case 3:            doThree();           // Ohne Break werden alle folgenden Befehle bis zum nächsten Break ausgeführt 
-        case 4:            doFour;             +        case 4:            doFour();             
-        case 5:            doFive; +        case 5:            doFive()
         default:           break;         default:           break;
     };     };
Zeile 468: Zeile 468:
 |<fc #008000>**GUT**</fc>| <sxh c; first-line: 1> |<fc #008000>**GUT**</fc>| <sxh c; first-line: 1>
 ... ...
-    int maxSteps            = 6; +    uint8_t maxSteps            = 6; 
-    int Grenze[maxSteps+1]  = { 0, 7,12,20,22,60,85}; +    uint8_t Grenze[maxSteps+1]  = { 0, 7,12,20,22,60,85}; 
-    int jSummand[maxSteps]  = { 2, 5, 3,10, 7, 1};+    uint8_t jSummand[maxSteps]  = { 2, 5, 3,10, 7, 1};
  
-    for(int steps; steps<maxSteps+1; steps++) {+    for(uint8_t steps; steps<maxSteps+1; steps++) {
         if( (Grenze[steps] < i) && (i <= Grenze[steps+1]) ) j = j + jSummand[steps];         if( (Grenze[steps] < i) && (i <= Grenze[steps+1]) ) j = j + jSummand[steps];
     };     };
Zeile 488: Zeile 488:
     if (( 7<i) && (i<=12)) {     if (( 7<i) && (i<=12)) {
         j=j+5;         j=j+5;
-        DoOne;+        DoOne();
     }     }
     if ((12<i) && (i<=20)) j=j+3;     if ((12<i) && (i<=20)) j=j+3;
Zeile 499: Zeile 499:
     else if (( 7<i) && (i<=12)) {     else if (( 7<i) && (i<=12)) {
         j=j+5;         j=j+5;
-        DoOne;+        DoOne();
     }     }
     else if ((12<i) && (i<=20)) { j = j + 3;};     else if ((12<i) && (i<=20)) { j = j + 3;};
Zeile 511: Zeile 511:
     if      (i<=7) {     if      (i<=7) {
         j=j+2;         j=j+2;
-        DoOne;+        DoOne();
     }     }
     else if (( 7<i) && (i<=12)) {     else if (( 7<i) && (i<=12)) {
         j=j+5;         j=j+5;
-        DoZero; +        DoZero()
-        DoOne;+        DoOne();
     }     }
     else if (12<i){     else if (12<i){
         j=j+3;         j=j+3;
-        DoZero; +        DoZero()
-        DoOne;+        DoOne();
     };     };
 ... ...
Zeile 528: Zeile 528:
 |<fc #008000>**GUT**</fc>| \\ noch leserlich: \\ <sxh c; first-line: 1> |<fc #008000>**GUT**</fc>| \\ noch leserlich: \\ <sxh c; first-line: 1>
 ... ...
-    if      (i<=7) { +    if      ( i <= 7 ) { 
-        j=j+2;+        j = j + 2;
     }     }
-    else if (( 7<i) && (i<=12)) { +    else if (( 7 < i ) && ( i <= 12)) { 
-        j=j+5; +        j = j + 5; 
-        DoZero;+        DoZero();
     }     }
-    else if (12<i){ +    else if ( 12 < i){ 
-        j=j+3; +        j = j + 3; 
-        DoZero;+        DoZero();
     };     };
-    DoOne;+    DoOne();
 ... ...
 </sxh>       auch möglich, aber etwas schwerer leserlich:  <sxh c; first-line: 1> </sxh>       auch möglich, aber etwas schwerer leserlich:  <sxh c; first-line: 1>
 ... ...
-    if           (i<=7)              j=j+2; +    if           ( i <= 7)                j = j + 2; 
-    else{if     (( 7<i) && (i<=12))  j=j+5; +    else{if     (( 7 <  i) && (i <= 12))  j = j + 5; 
-        else if  (12<i)              j=j+3; +        else if  (12 <  i)                j = j + 3; 
-        DoZero;+        DoZero();
     };     };
-    DoOne;+    DoOne();
 ... ...
 </sxh>    | </sxh>    |
Zeile 564: Zeile 564:
     initAll;     initAll;
     while(1){            // es wäre auch for(;;){} möglich     while(1){            // es wäre auch for(;;){} möglich
-        Eingabe; +        Eingabe()
-        Verarbeitung; +        Verarbeitung()
-        if (CancelButton==1) main; +        if (CancelButton==1) main()
-        Ausgabe;+        Ausgabe();
     }     }
 } }
Zeile 575: Zeile 575:
 void main() void main()
 { {
-    initOneTimeFunctions;+    initOneTimeFunctions();
  
     while(1){                        // äußere Endlos-Schleife     while(1){                        // äußere Endlos-Schleife
-        initOtherFunctions;+        initOtherFunctions();
         CancelButton = 0;         CancelButton = 0;
         while(!CancelButton){        // innere Schleife mit Abbruchbedingung         while(!CancelButton){        // innere Schleife mit Abbruchbedingung
-            Eingabe; +            Eingabe()
-            Verarbeitung; +            Verarbeitung()
-            if (!CancelButton) Ausgabe;+            if (!CancelButton) Ausgabe();
         };         };
     }     }
Zeile 593: Zeile 593:
  
 |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1> |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1>
-    for(int xpos=0;xpos<10;xpos++){ +    for(uint8_t xpos=0;xpos<10;xpos++){ 
-        initYPos;+        initYPos();
         for(int ypos=0;ypos<20;ypos++){         for(int ypos=0;ypos<20;ypos++){
-            Eingabe; +            Eingabe()
-            Verarbeitung;+            Verarbeitung();
             if (CancelButton) goto Abbruch;             if (CancelButton) goto Abbruch;
         };         };
Zeile 606: Zeile 606:
 </sxh>      | </sxh>      |
 |<fc #008000>**GUT**</fc>| <sxh c; first-line: 1> |<fc #008000>**GUT**</fc>| <sxh c; first-line: 1>
-    int xposMax=10, yposMax=20;+    uint8_t xposMax=10, yposMax=20;
  
-    for(int xpos=0 ; xpos<xposMax ; xpos++){ +    for(uint8_t xpos=0 ; xpos<xposMax ; xpos++){ 
-        initYPos; +        initYPos()
-        for(int ypos=0 ; ypos<yposMax ; ypos++){ +        for(uint8_t ypos=0 ; ypos<yposMax ; ypos++){ 
-            Eingabe; +            Eingabe()
-            Verarbeitung;+            Verarbeitung();
             if (CancelButton) break;    // bricht nur die ypos-Schleife ab!             if (CancelButton) break;    // bricht nur die ypos-Schleife ab!
         };         };
Zeile 647: Zeile 647:
     Laengen[i] = Laenge;     Laengen[i] = Laenge;
     Flaeche    = Laenge * Breite;     Flaeche    = Laenge * Breite;
-    LCD_putc(Laengen[i]+ ASCII_ZERO);+    LCD_putc(Laengen[i] + ASCII_ZERO);
 ... ...
 </sxh>  | </sxh>  |
Zeile 655: Zeile 655:
 ====== Bewertung ====== ====== Bewertung ======
  
-Zur Bewertung lege ich {{microcontrollertechnik:bewertung_ws21_prjxx.xlsx|diese Checkliste (xls-File)}} als Maßstab an.+Zur Bewertung lege ich {{microcontrollertechnik:bewertung_ss24_prj99.xlsx|diese Checkliste (xls-File)}} als Maßstab an.