ich hab die Tage mal das Bootloader Tutorial hier auf
mikrocontroller.net durchgearbeitet:
http://www.mikrocontroller.net/articles/AVR_Bootloader_in_C_-_eine_einfache_Anleitung
Klasse gemacht, alles sehr verständlich, bis auf ein Detail über das ich
mir den Kopf zerbreche: den Test
1 | if(!(c & UART_NO_DATA))
|
der praktisch die gesamte Hauptschleife einschliesst. Ich vermute zwar
dieser logische Test wird immer wahr sein (ist also überflüssig?) aber
sicher bin ich nicht, ich grübel schon die ganze Zeit was da
dahintersteckt.
Ein "normaler" Character c, wie er vorher vom UART geholt wurde, dürfte
eigentlich nur im niedrigen Byte von c liegen, wohingegen Fehlercodes
wie UART_NO_DATA nur im höherwertigen Byte sind (der Code basiert auf
der Fleury-Library).