можно наверно подергать битами свободного порта, и на железке осциллографом проверить где побывала программа где нет.
Вот например, должны быть импульсы на трех пинах порта...
И все станет ясно. Может, и запуска конверсии не было, а Вы готовность ждете :)
switch(adc.state)
{
case ADC_STATE_READY:
......SET_PORT_BIT1;
if(adc.timer == 0)
{
......SET_PORT_BIT2;
if(ADC_Check_Ready() != 0)
{
......SET_PORT_BIT3;
ADC_Start_Conversion();
......CLR_PORT_BIT3;
adc.timer = ADC_SAPMLING_PERIOD;
adc.state = ADC_STATE_CONVERSION;
}
}
break;
case ADC_STATE_CONVERSION:
......CLR_PORT_BIT1;
if(ADC_Check_End_Conversion() != 0)
{
......CLR_PORT_BIT2;
ADC_Calc_Power();
adc.state = ADC_STATE_READY;
}
break;
}