При компиляции идут предупреждения на строку с функцией о выходе значения за пределы диапазона. Но ведь итоговое значение равно 4800, а параметр __delay_cycles есть unsigned long! Если CLOCK жестко приравнять к 10, то все нормально. Но если ее приравнять к 100, то получаем ту-же ошибку out of range плюс еще и о смене знака... :-(
Получается, что компилятор работает с 16-ти битными данными? Как это побороть? И почему не работает вышеприведенный пример?
Вы ошибаетесь. Ведь это так легко проверить. А результат операции y=LINE(x); будет зависеть от типа y... Кроме того вот так: y=LINE(2.71828) увеличит и значительно