was mir in hinsicht auf kapselung recht gut gefallen hat, war V-USB (vormals AVR-USB) von obdev; das könnt man sich als inspiration anschauen.

wenn man anderer leute code liest, weil man ihn debuggen oder erweitern muß, bekommt man mit der zeit ein gefühl für code-qualität. bei mir haben jedenfalls eineinhalb jahrzehnte basteln an *nix open source code dazu geführt, daß ich nach 5 minuten weiß, ob ich den code mag oder nicht, und auch warum.

wesentlich ist dabei, daß man einfach und ohne umwege das findet, was man im code sucht -- "wo passiert X, und womit hängt es zusammen?". jedenfalls wenn man, wie ich meistens, in "use the source, luke"-manier nur mal kurz was in einem größeren haufen code ändern oder erweitern will. ich denke aber, das gilt genauso für µC-projekte, wo man vielleicht in ein paar monaten oder jahren nur punktuell was ändern will.

und das matcht eigentlich ganz gut mit den üblichen programmier-empfehlungen -- kapselung, prägnante doku, vermeidung von seiteneffekten, wo es geht, und so. aber bitte nicht übertreiben, wenn man einen funktionsaufruf einmal durch 3 layer von wrappern in 3 directories verfolgen darf, wird's mühsam. kommentare wie
Code:
i++; // inkrementiere i
auch.

daß mein eigener code allerdings meinen ästhetischen ansprüchen genügen würde, ist meistens nicht der fall, ich glaub, dazu bin ich zu ungeduldig, wenn's funktioniert, kann ich mich der nächsten baustelle widmen

ja, und versionskontrolle ist essentiell. wenn man viel codet, sollte man sich einmal einen abend oder ein wochenende mit versionskontrollsystemen auseinandersetzen und sich ein repository anlegen.

ciao,

cm.