Вообщем ситуация следующая.
Не ясно почему, но прога зависает при обращении через UART к переменным sumX(Y)(Z). При этом если взять модуль этих переменных перед выводом в UART то все пашет. Вышел из ситуации следующим образом (колхоз кончено но заработало.)
Функция DisplayAngleRate при этом не используется (видимо в ней и касяк)
if (abs(value.X_AXIS - r0_x) > TSHLD){
Xval = value.X_AXIS - r0_x;
if (abs(Xval * 0.00875 / 94.8 * 3.0)<0){
sumX -= abs(Xval * 0.00875 / 94.8 * 3.0)
}
else
{
sumX += abs(Xval * 0.00875 / 94.8 * 3.0)
}
UART1_Write(sumX);
Но самое печальное не в этом - чувствительность гироскопа оказалось недостаточной для реакции на угловые скорости моей платформы. Поэтому принял решение перейти на акселерометр
http://www.mikroe.com/add-on-boards/mea ... lerometer/ (он слава яйцам аналоговый, надеюсь гемора будет меньше).
О продвижениях или тупняках постараюсь отписываться.