Schau doch einfach mal in den bei WinAVR mitgelieferten Bibiliotheken.
Mit der crc16.h solltest du glücklich werden . Viel fertiger implementiert wirst du es nicht mehr bekommen ...

Man muss einfach nur noch die Funktion _crc16_update(); aufrufen. Schau dir am besten mal die Doku dazu an...

MfG Kjion