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

 
 
> Опять у mspgcc мозга за мозга заскакивает..., internal error: Segmentation fault
MrYuran
сообщение Nov 9 2009, 09:56
Сообщение #1


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Код
//------------------------------------------------------------------------
//      Ожидание готовности канала АЦП
//------------------------------------------------------------------------
//static
void WaitForReady(stADCStatus *ADC)
{
    GetRealTime(&RealTime);
    if((RealTime - ADC->StartTime) > ADC_CALIBR_DELAY)
        ADC->Phase = adcStartUp;
}

//----------------------------------------------------------------------
//      Калибровка АЦП по нулю
//----------------------------------------------------------------------
void ADC_ZeroCal(stADCStatus *ADC)
{
    if((ReadRegister(erMode) & 0x3) == 1)
    {
        Calibrate(adcFullCal, ADC->CurrentChannel);
        ADC->Phase = adcFullCal;
    }
    else
        WaitForReady(ADC);
}

Ошибка возникает в строке WaitForReady(ADC);
Непонятно, почему нельзя взять входной указатель на структуру и перекинуть его в вызываемую функцию.
Можно, конечно, заинлайнить эти несчастные 3 строчки по месту, но как-то неэстетично...
Да и с глюком нужно разобраться

Новые подробности:
заинлайнил, ничего не изменилось.

Опытным путём локализовал:
if((RealTime - ADC->StartTime) > ADC_CALIBR_DELAY)
Вот на это ругается.
StartTime - unsigned long

В чём дело? Всегда раньше работало...

#########

В общем, с помощью костылей и какой-то матери...

Код
void WaitForReady(stADCStatus *ADC)
{
    unsigned long temp = ADC->StartTime;
    GetRealTime(&RealTime);
    if((RealTime - temp) > ADC_CALIBR_DELAY)
        ADC->Phase = adcStartUp;
}


всё заработало. Что это было, в упор не понимаю.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



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

 


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


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