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

 
 
> Как внутри функции считать значение из ОЗУ МК?, С/C++ в AvrStudio
MaksimYrievich
сообщение Aug 10 2011, 17:22
Сообщение #1


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

Группа: Участник
Сообщений: 79
Регистрация: 10-08-09
Пользователь №: 51 828



Здравствуйте! Подскажите в чём проблема? Есть функция внутри которой необходимо прочитать значение из глобальной переменной т.е. из ОЗУ МК. В частности строчка 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);}
}

Прикрепленные файлы
Прикрепленный файл  PH_Regulator_PHR_04_01.rar ( 35.75 килобайт ) Кол-во скачиваний: 10
 
Go to the top of the page
 
+Quote Post



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

 


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


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