Здравствуйте! Подскажите в чём проблема? Есть функция внутри которой необходимо прочитать значение из глобальной переменной т.е. из ОЗУ МК. В частности строчка i = StatusPrer;, где StatusPrer объявлена как unsigned char StatusPrer; в начале файла после всех инклюд. В общем вот фрагмент кода. А в приложении целиком.
CODE
unsigned char StatusPrer;
//********************************************************************
//Функция по длительности нажатия кнопки выбирает регистр команды
//********************************************************************
static void PressKeyDlit(void)
{
unsigned char KeyCod;
unsigned char i;
_delay_ms(10);
if((PINB & 0xF0) == 0xF0)
{ return;}
else
{TCNT1 = 0x0000;
TCCR1B |= (1<<CS00);}
StatusPrer = 0x00; //Вот здесь без проблем. При компиляции команда остается.
metka1:
wdt_reset();
KeyCod = PINB;
i = StatusPrer; //А вот то место которое упорно удаляется компилятором!!! Соответственно
if(i == 0xFF) //ниже ничего не работает.
{goto metka2;}
else
{wdt_reset();}
if((PINB & 0xF0) != 0xF0)
{goto metka1;}
else
{}
metka2: TCCR1B &= ~(1<<CS00);
if(i == 0xFF)
{_delay_ms(10);
CommandKeyHigh(KeyCod);
return;}
else
{CommandKeyDown(KeyCod);}
}