jetzt bin ich am PC und möchte meine Kritik begründen.
> Kopierter Code für Spalten und Reihen
Die cases unterscheiden sich nur dadurch, dass ein anderes Bit in Port B
gesetzt wird und ein anderes Zeichen gesendet. Dafür werden 2 Dutzend
Zeilen kopiert und angepasst. obfuscated Alternative:
uart_put("1234567890#*"[Zeile+position*3]); //;-)
> Bitshiftmanipulation direkt
(!(PINB&(1<<Zeile2)))
Bei den meisten (flüchtigen) Zeichenfehlern kann niemand warnen. Bei
"PIN_LOW(PINB, Zeile2) dagegen führen 99% aller Zeichenfehler zu einem
Build-Fehler. Hier wäre praktisch nur der Suffix von PIN oder Zeile zu
fragil.
> Warten und senden in ISR
eine ISR sollte nur wenige Takte lang laufen, zumindest nicht viel mehr
als der "Herzschlag", also der SysTicker. Sonst besser auf Taskebene.
> Nur eine Taste von x gewinnt
wenn das gewollt ist, ok. Aber sonst spräche ja nichts gegen parallele
Auswertung und ggf. "e" bei mehr als 1 Taste.
> position weder statisch noch Abfrage > 2
wenn Position auch außerhalb verändert werden kann, so ist
1 | if (Position>2)
|
2 | {
|
3 | position=0;
|
4 | }
|
einfach robuster.
Ich habe die Kritik auch nur geäußert, weil
Erwin schrieb:
> Was genau findest du daran schlecht? Ich bin für Verbesserungen offen,