SciFi (10.01.2012 23:52, просмотров: 217) ответил Юрий_СВ на IAR ARM 6.21
Тут как раз всё понятно: 1) expression must have integral type - вы пытаетесь double сдвинуть вправо на 8 бит. Это бессмысленно, и компилятор, по-видимому, со мной согласен.
2) floating-point value does not fit in required integral type -> у вас при вычислениях получилось 2343.75, и вы пытаетесь это засунуть в unsigned char. Бессмыслица, и компилятор думает так же.
Так что всё закономерно. Попробуйте так:
#define TEMP_VAL(x) (unsigned int)(60.0 / (x) / 16 * F_SAMPLE)
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้