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

 
 
> Оптимизация в WinAVR, выбрасывает if
smk
сообщение Feb 13 2008, 21:16
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Вот такой кусок кода:

uint_least8_t k = (T_TEST<<2);
for(;;)
{
//***********************************
if(ac>A_SIG)
{
a_on;
buzz_on;
}

if(ac>B_SIG)
{
b_on;
buzz_on;
}
//***********************************
if( TIFR1 & (1<<TOV1) )
{
TCNT1H = (unsigned char)((T1_DIV)>>8);
TCNT1L = (unsigned char)T1_DIV;
TIFR1 |= (1<<TOV1);
if( !--k )
break;
}
}

То, что между строками из звездочек выбрасывается из программы, а это нельзя. Что можно предпринять? Заранее спасибо!


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
smk
сообщение Feb 13 2008, 21:44
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446



Цитата
Вы бы хоть написали что означают:


unsigned int ac; //глобальная
A_SIG = EEPROM_read_16 (10, 11); //тоже int читается из EEPROM
B_SIG = EEPROM_read_16 (14, 15);
#define a_on PORTA &= ~(1<<1);
#define b_on PORTA &= ~(1<<0);
#define buzz_on DDRB |= (1<<2);

Вообще-то начальное значение, например, A_SIG это 0xFF, а ac всегда инициализируется как 0. Потом конечно в прерывании от ADC значение ас меняется, пишется в EEPROM, на место, например, A_SIG. При повторном включении все повторяется, только A_SIG уже не 0xFF. Это нужно для калибровки при серии последовательных включений. Как быть?

Варнингов нет.
Спасибо, что откликнулись! Просто ума не приложу с какого конца подступиться...

Сообщение отредактировал smk - Feb 13 2008, 21:50


--------------------
Живи днем так, чтобы ночью ты спал спокойно.
Go to the top of the page
 
+Quote Post



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

 


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


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