Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Опять у mspgcc мозга за мозга заскакивает...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
MrYuran
Код
//------------------------------------------------------------------------
//      Ожидание готовности канала АЦП
//------------------------------------------------------------------------
//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;
}


всё заработало. Что это было, в упор не понимаю.
demiurg_spb
ADC_CALIBR_DELAY как задефайнено с суффиксом UL?
MrYuran
Цитата(demiurg_spb @ Nov 9 2009, 13:17) *
ADC_CALIBR_DELAY как задефайнено с суффиксом UL?

#define ADC_CALIBR_DELAY 1000ul
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.