Die 10 wichtigsten Faustformeln

Gast #1987952
Lesenswert?

MobyDick schrieb:
> mich würde es mal interessieren, was die 10 Wichtigsten-Faustformeln aus
> dem Bereich der Mikrocontroller sind, die man im Alltag beim Entwickeln
> der Hard- und Software ständig benötigt (aus technischer Sicht) ?
>
> 0.
Das Datenblatt.
> 1.
Gute Kenntnisse in der verwendeten Programmiersprache, am besten auch 
ein Buch dafür.
> 2.
Wissen, was man machen will.
> 3.
Keep it simple, stupid an short.
> 4.
Optimiert wird erst ganz zum Schluss.
> 5.
Der Fehler steckt im Detail.
> 6.
Den Fehler immer erst bei sich selbst suchen.
> 7.
Für die banalen Fehler sucht man am längsten.
> 8.
Glückssteigernde Mittel sind gut gegen Frust (z.B. Schokolade).
> 9.
Mit guter Musik arbeitet es sich besser.

:-)
#1987953
Lesenswert?

4) Wenn der µC nicht das macht, was du willst, dann ist nicht der µC
   defekt, sondern du hast deine Wünsche in Form des Programmes falsch
   formuliert.
   Der µC bzw. der Compiler hat immer recht.
   Und selbst wenn tatsächlich der Tausend-Gulden-Schuss eintritt, das
   der Compiler nicht recht hat, hilft es dir nichts darüber zu
   lametieren.
#1987984
Lesenswert?

Mit Formeln kommt man nicht weit. Es gibt fürs Programmieren keine 
Superformel und alles gelingt.

Aber es gibt Schritte, die das Programmieren einfacher und vor allem 
zuverlässiger machen:
0. PC ausschalten
1. Pflichtenheft erstellen
2. überlegen
3. Ablaufplan erstellen
4. Ablaufplan überprüfen, ob logisch korrekt
5. dann erst PC wieder anschalten und PAP in Code umsetzen
6. Keine kryptischen Hexwerte im Programm
7. Laß den Compiler Konstanten ausrechnen, der kann das besser als Du.
8. Daten vom Interrupt im Main immer volatile casten
9. In Unterfunktionen aufteilen, es gibt keine untere Grenze dafür
10. nichts vermuten oder hoffen, sondern nachschlagen und prüfen (worst 
case)


Peter
#1988032
Lesenswert?

sei clever - aber nicht zu clever.
Dein Compiler ist viel smarter als du denkst (auch wenn einige das 
bestreiten)

Zuerst machs richtig, und dann erst machs schnell.
Du hast nichts von einem Programm, welches alles rasend schnell 
berechnet - wenn alles was es berechnet falsch ist.
Gast #1988131
Lesenswert?

Auch wenn es schon inhaltlich kam.

1. Irren ist menschlich.
2. Der Compiler irrt nie.

und

§1 Der Compiler hat immer recht.
§2 Sollte der Compiler mal nicht recht haben, so tritt automatisch §1 in 
kraft.
Gast #1988177
Lesenswert?

> Ein µC macht nicht immer, was er soll.
> Er macht aber IMMER, was man ihm sagt...


Es sei denn der Hersteller hats verbockt und es gibt ein ellenlanges 
Errata Blättchen.
Dann macht er manchmal auch einfach was er will  :-)
Gast #1988466
Lesenswert?

Dokumentiere gut!

Präventiver Code: Wenn dir an irgendeiner Stelle bewusst wird, dass 
bestimmte Umstände zu Katastrophen führen würden, sichere es so ab, dass 
diese Fehler abgefangen und gemeldet werden.

Wenn Software irgendwo Mist macht, ignoriere es nicht, sondern lasse es 
sofort sichtbar werden. Wenn nicht für den Benutzer, dann zumindest im 
Logfile.

Benutze eine Versionsverwaltung für den Code, so das du immer auf eine 
bestimmte Release zurückgreifen kannst.
#1988571
Lesenswert?

1. Wenn etwas schiefgehen kann, dann geht es schief.

   2. Wenn etwas auf verschiedene Arten schiefgehen kann, dann geht es 
immer auf die Art schief, die am meisten Schaden verursacht.

   3. Hat man alle Möglichkeiten ausgeschlossen, bei denen etwas 
schiefgehen kann, eröffnet sich sofort eine neue Möglichkeit.

   4. Die Wahrscheinlichkeit, dass ein bestimmtes Ereignis eintritt, ist 
umgekehrt proportional zu seiner Erwünschtheit.

   5. Früher oder später wird die schlimmstmögliche Verkettung von 
Umständen eintreten.

   6. Wenn etwas zu gut erscheint, um wahr zu sein, ist es das 
wahrscheinlich auch.

   7. Wenn etwas nicht schiefgegangen zu sein scheint, dann wurde der 
Fehler lediglich noch nicht entdeckt, wodurch alles nur noch schlimmer 
wird.

   8. Geht etwas nicht schief, so tritt sofort Regel 1 in Kraft.

(Murphy's law, nach Wikipedia)

Ich kenne noch:

- Toleranzen addieren sich unabhängig vom Vorzeichen immer zur 
ungünstigsten Seite.

- Das Butterbrot fällt immer auf die bestrichene Seite.


Ich hatte noch kein Projekt, bei dem nicht eine gehörige Portion Murphy 
drin war.
#1988726
Lesenswert?

Karl heinz Buchegger schrieb:
> sei clever - aber nicht zu clever.
> Dein Compiler ist viel smarter als du denkst (auch wenn einige das
> bestreiten)

Das bringt uns zu einer weiteren Standard-Regel:

"Assumptions are the root of all evil."

Darunter gehört auch die Annahme, der Compiler sei nicht smart genug, 
aber auch die, der Compiler sei smart genug. Es gibt tatsächlich extrem 
viel Code, wo nicht in einer Doku (von Compiler, Bibliothek oder 
sonstwas) nachgelesen wurde, wie's richtig geht, sondern man einfach 
irgendwas angenommen hat, das dann meistens nur zum Teil richtig ist. 
Ich halte das für eine der größten Fehlerursachen überhaupt in der 
Programmierung.

Thomas Eckmann schrieb:
>> Dann macht er manchmal auch einfach was er will  :-)
>
> Trotzdem sitzt das größte Problem meistens vor dem Computer und nicht in
> der Schaltung.

Das kann korrelieren, wenn die Schaltung im Kopf vor dem Computer 
entstanden ist ;-)

Thomas Eckmann schrieb:
> Karl heinz Buchegger schrieb:
>> 7) Programmieren wäre so schön, wenn es keinen quengelnden Kunden
>>
>>    gäbe
>
> Wer seinem Kunden erzählt, was das Ding noch alles könnte, ist selber
> schuld.

Meistens läuft es doch eher umgekehrt. Der Kunde kommt mit seinen ganzen 
utopischen Forderungen und akzeptiert nicht, wenn man ihm sagt, daß das 
Ding das nicht kann.

Floh schrieb:
> Hc Zimmerer schrieb:
>> - Das Butterbrot fällt immer auf die bestrichene Seite.
>
> Außer man bindet das Butterbrot auf eine Katzenrücken. Da die Katze
> immer auf die Füße fällt, ist die Lösung nicht definiert :-)
>
> http://www.nichtlustig.de/comics/full/010712.jpg
> :-)

Hoffentlich probiert das nie einer real aus. Wahrscheinlich fällt uns 
dann der Himmel auf den Kopf, oder es gibt eine Raumfaltung, damit auf 
beiden Seiten Boden sein kann.
Gast #1989436
Lesenswert?

- LEDs benötigen Vorwiderstand und können gut mit PWM (Interrupts) 
programmiert werden
- Treiber hinter IC-Baustein
- Moore-Automat hängt nuuuur vom inneren Zustand ab
- Multimeter und Batterien haben Innenwiderstand
#1989776
Lesenswert?

Eine der wichtigsten: Vertraue keiner Faustformel!

Fausformeln beinhalten meistens starke Vereinfachungen. In 99.9% der 
Fälle sind diese Vereinfachungen zwar zulässig und verändern das 
Ergebnis nicht gravierend, trotzdem sollte man die Schwächen der 
genutzten Faustformel kennen.

Dazu braucht man dummerweise genau das theoretische Wissen, das einem 
die Faustformel ersparen möchte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren