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 [2023/01/12 21:35]
mexleadmin [Programmoptimierung - kurz und übersichtlich]
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 156: Zeile 156:
 ++++Beispiel für Konstanten| ++++Beispiel für Konstanten|
  
 +{{tablelayout?tableSort=1&tableSearch=1}}
 |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1> |<fc #800000>**SCHLECHT**</fc>| <sxh c; first-line: 1>
 // Konstanten // Konstanten
Zeile 224: 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 267: 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 274: Zeile 275:
     return 0;     return 0;
 } }
-</sxh>      In diesem Beispiel wäre der Funktionsname schluesselPosition statt schluesselPositionFinden auch geeignet gewesen.  \\ Weiterhin bietet es sich an hier auch einen Zeiger auf das Array und die Werte für erste und letzte Position als Parameter der Funktion zu übergeben, um diese flexibler anwenden zu können.  |+</sxh>      In diesem Beispiel wäre der Funktionsname ''SchluesselPosition'' statt ''schluesselPositionFinden'' auch geeignet gewesen.  \\ Weiterhin bietet es sich an hier auch einen Zeiger auf das Array und die Werte für erste und letzte Position als Parameter der Funktion zu übergeben, um diese flexibler anwenden zu können.  |
  
 ++++ ++++
Zeile 397: 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 409: 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 424: 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 442: 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 467: 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 487: 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 498: 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 510: 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 527: 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 563: 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 574: 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 592: 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 605: 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 646: 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 654: 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.