line 467 in sdhc.c (cosmetic?) is in error me thinks. it reads
m_sdhc_baudrate=F_CPU/((1<<minpresc)*(mindiv+1));
but minpresc is not a shift value, it should be minpresc << 1
BUT, that is not quite right either, because if minpresc is 0, you want the multiplier to be 1, so maybe
int tmp = minpresc << 1;
if (tmp == 0) tmp = 1;
m_sdhc_baudrate=F_CPU/(tmp*(mindiv+1));
line 467 in sdhc.c (cosmetic?) is in error me thinks. it reads
m_sdhc_baudrate=F_CPU/((1<<minpresc)*(mindiv+1));
but minpresc is not a shift value, it should be minpresc << 1
BUT, that is not quite right either, because if minpresc is 0, you want the multiplier to be 1, so maybe
int tmp = minpresc << 1;
if (tmp == 0) tmp = 1;
m_sdhc_baudrate=F_CPU/(tmp*(mindiv+1));