Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.02.2010, 18:34
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Присвоение значения - глюк Протеуса?
Какой то не понятный глюк. отладку кода произвожу в Протеусе. PIC18F2520
Если присваиваем в начале функции все нормально, а если в конце то нет! На железе не пробовал, вот и думаю, может глюк Протеуса?
Код:
|
void InputParameters(void)
{
unsigned char i=0, i1=0;
//Если сдесь осуществляем присваивание то все как нужно
GroupTime[0]=50;//принимает значение
AlarmTime[0]=50;//принимает значение
Ztype[0]=4;
Ztype[1]=0;
Zgroup[0]=0;
Zgroup[1]=0;
Zoperation[0]=0;
Zoperation[1]=6;
Ztime[0]=4;
Ztime[1]=4;
Zvaluemin[0][0]=0x00;
Zvaluemin[0][1]=0x00;
Zvaluemin[1][0]=0x10;
Zvaluemin[1][1]=0x00;
Zvaluemax[0][0]=0x00;
Zvaluemax[0][1]=0x00;
Zvaluemax[1][0]=0x12;
Zvaluemax[1][1]=0x00;
//Если сдесь осуществляем присваивание, GroupTime[0] и AlarmTime[0] остаются равными 0
GroupTime[0]=50;//принимает значение
AlarmTime[0]=50;//принимает значение
amkey=EEPROM_READ(KYES*KBIT);
if(amkey›=KYES) {amkey=0; return;}
for(i=0;i‹amkey;i++) for(i1=0;i1‹KBIT;i1++) KeyBuf[i][i1]=EEPROM_READ(i*KBIT+i1);
} |
|
|
|
|
24.02.2010, 20:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,018
Сказал спасибо: 348
Сказали Спасибо 1,024 раз(а) в 552 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Ну так вы попробуйте сначала объявить, а потом уже в программе присвоить. Нельзя использовать переменные, если вы их не объявили.
|
|
|
|
24.02.2010, 20:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
1. Какой компилятор?
2. Включена ли оптимизация? Если да - возможно ваш код удалён за ненадобностью.
3. Ну, и как всегда - пример в студию.
|
|
|
|
24.02.2010, 20:57
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Сообщение от TEHb
|
1. Какой компилятор?
2. Включена ли оптимизация? Если да - возможно ваш код удалён за ненадобностью.
3. Ну, и как всегда - пример в студию.
|
1. HI-TECH PICC18.
2. Где там оптимизация?
3. На работе остался.
|
|
|
|
24.02.2010, 20:58
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Сообщение от Saadov
|
Ну так вы попробуйте сначала объявить, а потом уже в программе присвоить. Нельзя использовать переменные, если вы их не объявили.
|
Переменная глобальная, объявлена в начале исходника.
Если бы она не была объявлена, как бы работало?
|
|
|
|
24.02.2010, 21:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Сообщение от maxNTF
|
2. Где там оптимизация?
|
В ключах командной строки компилятора. По умолчанию она включена в --opt=1 (Level 1), чтобы выключить нужно задать --opt=none.
|
|
|
|
24.02.2010, 21:12
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Сообщение от TEHb
|
В ключах командной строки компилятора. По умолчанию она включена в --opt=1 (Level 1), чтобы выключить нужно задать --opt=none.
|
А в MPLAB на каждый исходник можно вызвать настройки "Build Options"
У меня везде стоит Global optimization level - 9
И галочка на Enable assembler optimization
Это что?
|
|
|
|
24.02.2010, 21:23
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
ВО стряпал проект, та же петрушка!
|
|
|
|
25.02.2010, 13:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Потому что срабатывает
Код:
|
if(amkey›=KYES) {amkey=0; return;} |
т.к. amkey==0xFF по крайней мере на моём пустом дизайне.
|
|
|
|
25.02.2010, 14:24
|
|
Вид на жительство
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Присвоение значения - глюк Протеуса?
Сообщение от TEHb
|
Потому что срабатывает
Код:
|
if(amkey›=KYES) {amkey=0; return;} |
т.к. amkey==0xFF по крайней мере на моём пустом дизайне.
|
Ну так это после присваения!
Код:
|
GroupTime[0]=50;
AlarmTime[0]=50;
amkey=EEPROM_READ(KYES*KBIT);
if(amkey›=KYES) {amkey=0; return;} |
Да! И еще одно, если эти переменные типа char, тогда работает!
Последний раз редактировалось maxNTF; 25.02.2010 в 14:28.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 16:07.
|
|