реклама на сайте
подробности

 
 
> C-SPY сбрасывает программу при отладке...
Freeze Anti
сообщение Sep 14 2007, 09:48
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 153
Регистрация: 29-03-07
Из: Саратов
Пользователь №: 26 613



Проблема вот в чем...
В C-SPY отлаживается программа... Вроде бы ысе нормально, но, дойдя до некоторой строчки
Код
WriteFloatValue(0, intDigits, fraqDigits);

переходит не на следующую строку (без зависимости от того. входим мы в эту функцию или нет...), а в начало программы.
Следующая строка
Код
lcdCursorMove(-nDigits);

Сама функция
Код
// Функция реализует вывод на экран ЖКИ вещественного числа, представляемого
// 2-х байтным целым, младшие 2 разряда которого являются дробными. Значения
// лежат в диапазоне от 0.00 до 655.35. intDigits - задает количество разря-
// дов целой части, fraqDigits - количество разрядов дробной части
void WriteFloatValue(unsigned short Value, unsigned char intDigits,
                         unsigned char fraqDigits)
{ unsigned short Divisor = INIT_DEC_MASK_VALUE;
  unsigned short tmpValue;
  unsigned char i,chDigit;
  tmpValue = Value;                     // tmpValue - рабочия копия числа
  // Рассматриваем целую часть числа Value
  for (i=MAX_INT_POSITIONS; i>0; i--)
  { chDigit = tmpValue / Divisor;       // Цифра i-го разряда числа
    tmpValue -= chDigit * Divisor;      // Устранение i-го разряда из числа
    if (i <= intDigits)                 // Добрались до отображаемых разрядов
    { chDigit += 0x30;                  // Формируем код символа
      lcdWriteData(chDigit);            // Вывод цифры на индикатор
    }
    
    Divisor /= 10;
  }
  lcdWriteData(0x2E);                   // Ставим десятичную точку
  // Рассматриваем дробную часть числа Value
  for (i=fraqDigits; i>0; i--)
  { chDigit = tmpValue / Divisor;       // Цифра i-го разряда числа
    tmpValue -= chDigit * Divisor;      // Устранение i-го разряда из числа
    chDigit += 0x30;                    // Формируем код символа
    lcdWriteData(chDigit);              // Вывод цифры на индикатор
    
    Divisor /= 10;
  }
}

При прошивке этой программы в микросхему она работает стабильно... Сброса системы ни разу не наблюдал...


--------------------
!!! All you need is LOVE !!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 14:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01351 секунд с 7
ELECTRONIX ©2004-2016