Цитата(ffs2001 @ Dec 3 2014, 23:04)

[code]CRC_CTRL |= CRC_CRC32_bm;
CRC.CTRL |= CRC_SOURCE_IO_gc;
Сам модуль работает, но выдаёт неверные данные.
Возможно, вы забыли сделать обнуление перед накоплением.
CRC_CTRL = CRC_CRC32_bm | CRC_SOURCE_IO_gc;
CRC_CTRL |= CRC_RESET_RESET0_gc; // Reset CRC with CHECKSUM to all zeros
P.S. И вот еще:
надо вызывать функцию
ltoa(CRC.CHECKSUM3,str);
вместо
itoa(CRC.CHECKSUM3,str);
Т.к. int у XMega 16-битный.
CRC32 тогда long, а не int.