Нужна помощь Сишников. Непонятна ошибка выдаваемая компилятором gcc. Помогите.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Igor 06 сентября 2005 г. 12:37

В этом коде компилятор ругается на помеченные звездочкой строчки. Первая ошибка - "error: parse error before "AdcVoltageAverage"". Вторая не ошибка а предупреждение: "warning: integer overflow in expression". Предупреждение не понятно тем, что переполнения быть не может, так как KdVMiddle меньше 65535, вот объявления:
#define OnMiddleValue 180
#define OffValve 240
#define KdVMiddle OffValve*OnMiddleValue

uint16_t AdcVoltageAverage;

Компилирую avr-gcc (GCC) 3.4.3.

Вот сам код:
-----------------------------------------------------------
INTERRUPT (SIG_ADC)
{
uint8_t i;
uint16_t Time,Min,Max;

AdcInterim[ShareSecond]=ADCL+(ADCH<<8);
++ShareSecond;
if (ShareSecond>5)
{
ShareSecond=0;
if (SystemFlags.AdcVoltage==1)
{
AdcVoltageAverage=0;
Min=AdcInterim[0];
Max=Min;
for (i=0;i<6;i++)
{
Time=AdcInterim[i]
* AdcVoltageAverage+=Time;
здесь выдается "error: parse error before "AdcVoltageAverage""
if (Time else if (Time>Max) Max=Time;
}
AdcVoltageAverage=AdcVoltageAverage/6;
Time=Max-Min;
Time=(100*Time)/AdcVoltageAverage;
if (SystemFlags.ValveOn==1)
{
if (AdcVoltageAverage>MaxVoltageValue)
{
ErrorFlags.LargeVoltageOn=1;
}
else
{
ErrorFlags.LargeVoltageOn=0;
if (SystemFlags.ValveFull==1)
{
Time=KdVFull/AdcVoltageAverage;
OnFull=(uint8_t)Time;
OCR0B=OnFull;
}
else
{
* Time=KdVMiddle/AdcVoltageAverage;
здесь выдается "warning: integer overflow in expression"
OnMiddle=(uint8_t)Time;
OCR0B=OnMiddle;
}
}
}
else
{
if (AdcVoltageAverage {
ErrorFlags.SmallVoltageOff=1;
}
else
{
ErrorFlags.SmallVoltageOff=0;
}
}
AdcVoltageNew=AdcAdd;
SystemFlags.AdcVoltage=0;
ADMUX|=(1< }
else
{
AdcCurrentNew=AdcAdd;
SystemFlags.AdcVoltage=1;
ADMUX&= ~(1< }
AdcAdd=0;
SystemFlags.ReadyAdc=1;
}
}


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru