варнинг от функции printf, она пытается данный ей лонг конвертнуть в int,
она же библиотечная и старинная,
так получилось что в арме int == long, а в avr int == 16, потому int32 для avr - это лонг, да и вообще int это 16 бит, а 32 бита это long.
напишите
Код
long i;
printf("%i", i);
и получите варнинг
кстати а есть вариант в этой библиотеке
Код
printf("%l",i)
?
скорее всего он не будет давать варнинга
а вообще когда народ устал от путаницы с тем сколько бит
int
long и прочее,
и появились
int32_t типы, и коль вы встали на этот путь, то вам надо использовать тот же однозначно определенный вариант печати
Код
printf("%" PRIu32 "\n",i);