Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
microcontrollertechnik:vorgaben_fuer_die_softwareentwicklung [2022/02/26 02:50] – [Variablen - leserlich, initialisiert und separat] tfischer | microcontrollertechnik:vorgaben_fuer_die_softwareentwicklung [2024/09/24 13:51] (aktuell) – mexleadmin | ||
---|---|---|---|
Zeile 34: | Zeile 34: | ||
| | ||
- | Software: | + | Software: |
Funktion: | Funktion: | ||
Zeile 61: | Zeile 61: | ||
=============================================================================*/ | =============================================================================*/ | ||
- | </code> | + | </sxh> |
++++ | ++++ | ||
Zeile 156: | Zeile 156: | ||
++++Beispiel für Konstanten| | ++++Beispiel für Konstanten| | ||
+ | {{tablelayout? | ||
|<fc # | |<fc # | ||
// Konstanten | // Konstanten | ||
Zeile 224: | Zeile 225: | ||
// Variablen | // Variablen | ||
- | const int maxAnzSpieler | + | const uint8_t |
- | uint8_t | + | uint16_t |
- | unsigned char gemesseneBreite = 0; // gemessene Breite in Meter | + | uint8_t |
bool zeichenAusgabe | bool zeichenAusgabe | ||
// ein Zeichen ausgegeben werden darf | // ein Zeichen ausgegeben werden darf | ||
Zeile 267: | Zeile 268: | ||
*/ | */ | ||
{ | { | ||
- | for( int aktuelleSchluesselPosition=ERSTE_SCHLUESSEL_POSITION; | + | for( uint8_t |
{ // 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; | ||
} | } | ||
- | </ | + | </ |
++++ | ++++ | ||
Zeile 397: | Zeile 398: | ||
|<fc # | |<fc # | ||
... | ... | ||
- | if (i==0) doZero; | + | if (i==0) doZero(); // wenn 0 dann null |
- | if (i==1) doOne; | + | if (i==1) doOne(); // wenn 1 dann eins |
- | if (i==2) doTwo; | + | if (i==2) doTwo(); // wenn 2 dann zwei |
- | if (i==3) doThree; | + | if (i==3) doThree(); // wenn 3 dann drei |
- | if (i==4) doFour; | + | if (i==4) doFour(); // wenn 4 dann vier |
- | if (i==5) doFive; | + | if (i==5) doFive(); // wenn 5 dann fünf |
... | ... | ||
Zeile 409: | Zeile 410: | ||
... | ... | ||
switch(i) { | switch(i) { | ||
- | case 1: doOne; | + | case 1: doOne(); |
- | case 2: doTwo; | + | case 2: doTwo(); |
- | case 3: doThree; break; | + | case 3: doThree(); break; |
- | case 4: doFour; | + | case 4: doFour(); break; |
- | case 5: doFive; | + | case 5: doFive(); break; |
default: break; | default: break; | ||
}; | }; | ||
Zeile 424: | Zeile 425: | ||
... | ... | ||
switch(i) { | switch(i) { | ||
- | case 1: doOne; | + | case 1: doOne(); |
- | case 2: doOne; | + | case 2: doOne(); |
- | case 3: doThree; | + | case 3: doThree();doFour();doFive(); break; |
- | case 4: doFour; | + | case 4: doFour();doFive(); |
- | case 5: doFive; | + | case 5: doFive(); break; |
- | case 6: doOne; | + | case 6: doOne(); |
- | case 7: doOne; | + | case 7: doOne(); |
- | case 8: doOne; | + | case 8: doOne(); |
- | case 9: doOne; | + | case 9: doOne(); |
default: break; | default: break; | ||
}; | }; | ||
Zeile 441: | Zeile 442: | ||
... | ... | ||
switch(i) { | switch(i) { | ||
- | case 1, 2, 6...9 : doOne; | + | case 1: |
- | case 3: doThree; | + | case 2: // Einzelne Zahlen können mit case's untereinander ... |
- | case 4: doFour; | + | case 6 ... 9: doOne(); |
- | case 5: doFive; | + | case 3: doThree(); // |
+ | case 4: doFour(); | ||
+ | case 5: doFive(); | ||
default: | default: | ||
}; | }; | ||
Zeile 465: | Zeile 468: | ||
|<fc # | |<fc # | ||
... | ... | ||
- | | + | |
- | | + | |
- | | + | |
- | for(int steps; steps< | + | for(uint8_t |
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 485: | 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 496: | 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 508: | 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 525: | Zeile 528: | ||
|<fc # | |<fc # | ||
... | ... | ||
- | 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< | + | else if ( 12 < i){ |
- | j=j+3; | + | j = j + 3; |
- | DoZero; | + | DoZero(); |
}; | }; | ||
- | DoOne; | + | DoOne(); |
... | ... | ||
</ | </ | ||
... | ... | ||
- | if | + | if ( i <= 7) j = j + 2; |
- | else{if | + | else{if |
- | else if (12< | + | else if (12 < i) j = j + 3; |
- | DoZero; | + | DoZero(); |
}; | }; | ||
- | DoOne; | + | DoOne(); |
... | ... | ||
</ | </ | ||
Zeile 561: | Zeile 564: | ||
initAll; | initAll; | ||
while(1){ | while(1){ | ||
- | Eingabe; | + | Eingabe(); |
- | Verarbeitung; | + | Verarbeitung(); |
- | if (CancelButton==1) main; | + | if (CancelButton==1) main(); |
- | Ausgabe; | + | Ausgabe(); |
} | } | ||
} | } | ||
Zeile 572: | Zeile 575: | ||
void main() | void main() | ||
{ | { | ||
- | initOneTimeFunctions; | + | initOneTimeFunctions(); |
while(1){ | while(1){ | ||
- | initOtherFunctions; | + | initOtherFunctions(); |
CancelButton = 0; | CancelButton = 0; | ||
while(!CancelButton){ | while(!CancelButton){ | ||
- | Eingabe; | + | Eingabe(); |
- | Verarbeitung; | + | Verarbeitung(); |
- | if (!CancelButton) Ausgabe; | + | if (!CancelButton) Ausgabe(); |
}; | }; | ||
} | } | ||
Zeile 590: | Zeile 593: | ||
|<fc # | |<fc # | ||
- | for(int xpos=0; | + | for(uint8_t |
- | initYPos; | + | initYPos(); |
for(int ypos=0; | for(int ypos=0; | ||
- | Eingabe; | + | Eingabe(); |
- | Verarbeitung; | + | Verarbeitung(); |
if (CancelButton) goto Abbruch; | if (CancelButton) goto Abbruch; | ||
}; | }; | ||
Zeile 603: | Zeile 606: | ||
</ | </ | ||
|<fc # | |<fc # | ||
- | | + | |
- | for(int xpos=0 ; xpos< | + | for(uint8_t |
- | initYPos; | + | initYPos(); |
- | for(int ypos=0 ; ypos< | + | for(uint8_t |
- | Eingabe; | + | Eingabe(); |
- | Verarbeitung; | + | Verarbeitung(); |
if (CancelButton) break; | if (CancelButton) break; | ||
}; | }; | ||
Zeile 621: | Zeile 624: | ||
++++ | ++++ | ||
- | * _delay_ms() und _delay_us() sind zu 99% nicht notwendig. Verwenden Sie stattdessen Interrupts, bzw. Timer. Es können z.B. durch Interrupts Takte angelegt werden: takt10ms, takt100ms, takt1s. Diese können dann im main() Verzweigungen in einer Zustandsmaschine | + | * _delay_ms() und _delay_us() sind zu 99% nicht notwendig. Verwenden Sie stattdessen Interrupts, bzw. Timer. |
+ | * Häufig bietet es sich an, in den Takten dann auch Verzweigungen in einer Zustandsmaschine | ||
* Wenn Sie Zahlen in Variablen speichern und diese auch mathematisch weiterverwenden, | * Wenn Sie Zahlen in Variablen speichern und diese auch mathematisch weiterverwenden, | ||
++++Beispiel für Variablen mit Ausgabe| | ++++Beispiel für Variablen mit Ausgabe| | ||
Zeile 643: | Zeile 647: | ||
Laengen[i] = Laenge; | Laengen[i] = Laenge; | ||
Flaeche | Flaeche | ||
- | LCD_putc(Laengen[i]+ ASCII_ZERO); | + | LCD_putc(Laengen[i] + ASCII_ZERO); |
... | ... | ||
</ | </ | ||
Zeile 651: | Zeile 655: | ||
====== Bewertung ====== | ====== Bewertung ====== | ||
- | Zur Bewertung lege ich {{microcontrollertechnik: | + | Zur Bewertung lege ich {{microcontrollertechnik: |