Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Присвоение значения - глюк Протеуса?

Непрочитано 24.02.2010, 18:34  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
Вопрос Присвоение значения - глюк Протеуса?

Какой то не понятный глюк. отладку кода произвожу в Протеусе. 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);
}
Реклама:
maxNTF вне форума  
Непрочитано 24.02.2010, 20:27  
Saadov
Почётный гражданин KAZUS.RUN
 
Аватар для Saadov
 
Регистрация: 13.11.2008
Адрес: г.Смоленск
Сообщений: 2,010
Сказал спасибо: 348
Сказали Спасибо 1,023 раз(а) в 551 сообщении(ях)
Saadov на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Ну так вы попробуйте сначала объявить, а потом уже в программе присвоить. Нельзя использовать переменные, если вы их не объявили.
Saadov вне форума  
Непрочитано 24.02.2010, 20:34  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

1. Какой компилятор?
2. Включена ли оптимизация? Если да - возможно ваш код удалён за ненадобностью.
3. Ну, и как всегда - пример в студию.
TEHb вне форума  
Непрочитано 24.02.2010, 20:57  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Сообщение от TEHb Посмотреть сообщение
1. Какой компилятор?
2. Включена ли оптимизация? Если да - возможно ваш код удалён за ненадобностью.
3. Ну, и как всегда - пример в студию.
1. HI-TECH PICC18.
2. Где там оптимизация?
3. На работе остался.
maxNTF вне форума  
Непрочитано 24.02.2010, 20:58  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Сообщение от Saadov Посмотреть сообщение
Ну так вы попробуйте сначала объявить, а потом уже в программе присвоить. Нельзя использовать переменные, если вы их не объявили.
Переменная глобальная, объявлена в начале исходника.
Если бы она не была объявлена, как бы работало?
maxNTF вне форума  
Непрочитано 24.02.2010, 21:03  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Сообщение от maxNTF Посмотреть сообщение
2. Где там оптимизация?
В ключах командной строки компилятора. По умолчанию она включена в --opt=1 (Level 1), чтобы выключить нужно задать --opt=none.
TEHb вне форума  
Непрочитано 24.02.2010, 21:12  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Сообщение от TEHb Посмотреть сообщение
В ключах командной строки компилятора. По умолчанию она включена в --opt=1 (Level 1), чтобы выключить нужно задать --opt=none.
А в MPLAB на каждый исходник можно вызвать настройки "Build Options"
У меня везде стоит Global optimization level - 9
И галочка на Enable assembler optimization
Это что?
maxNTF вне форума  
Непрочитано 24.02.2010, 21:23  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

ВО стряпал проект, та же петрушка!
Вложения:
Тип файла: zip test.zip (34.1 Кб, 47 просмотров)
maxNTF вне форума  
Непрочитано 25.02.2010, 13:59  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Присвоение значения - глюк Протеуса?

Потому что срабатывает
Код:
if(amkey›=KYES) {amkey=0; return;}
т.к. amkey==0xFF по крайней мере на моём пустом дизайне.
TEHb вне форума  
Непрочитано 25.02.2010, 14:24  
maxNTF
Вид на жительство
 
Регистрация: 18.06.2006
Сообщений: 434
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
maxNTF на пути к лучшему
По умолчанию 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.
maxNTF вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Глюк Протеуса? igor-k Proteus, KiCAD и другие ECAD 10 12.12.2009 22:09
Atmega16+DS18B20 глюк протеуса? grisha109 Микроконтроллеры, АЦП, память и т.д 3 29.11.2009 15:35


Часовой пояс GMT +4, время: 17:34.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.