polybassa/Wifly_Light — pull request #11 by tawarisch (2012-07-24 21:21:39+00:00)
Title: Pic18 master

So ich hab mir mal den PIC18 master geholt und ihn auch bei mir baufähig gemacht.
Mir ist noch eine Sache aufgefallen:
du benutzt sehr of signed variablen und zwar an ungünstigen Stellen. Ich meine damit den Unterschied zwischen z.B. "char" und "unsigned char".
Wir sollten uns darauf einigen signed nur dort zu verwenden, wo es benötigt wird. Dafür gibt es einige Gründe:
- unsigned ist der "natürliche" Datentyp der Prozessoren. Wenn du 8 Bit Hardwareregister hast sind das eigentlich immer unsigned Werte. Gerade wenn die Register Konfigurationsparameter enthalten.
- Alles was mit Bit Operationen zu tun hat, interpretiert die Werte unsigned
- Additionsüberläufe sind in ANSI-C für unsigned definiert
- der MODULO Operator ist für unsigned definiert
- pointer sind immer positiv
- größen sind immer positiv
- byte wird als #define byte unsigned char definiert

Wenn wir konsequent auf unsigned setzen spart uns das eine Menge Ärger, wenn wir ein paar Dinge beachten:
Achtung in Schleifen: for(unsigned char i = 10; i >= 0; i--) wird nie terminieren ;-)