Таймер А по аналог. компаратору - значение надо Джентельмены, проясните или дайте пример кода,
Нужно по переднему фронту срабатывания компаратора вычитать данные из таймера А. У меня получился такой код:
// настройка компаратора
CACTL1 = CARSEL+CAREF1+CAON+CAIE;
CACTL2 = P2CA0+CAF;
// настройка таймера
TACTL = TASSEL1 + TACLR+ID0+ID1; // SMCK, clear TAR, devider=8
TACCTL1 = CCIE + CCIS0 + CM0 + CAP; /* прерывание, подключить вход capture к выходу таймера, захват по переднему фронту, capture mode
TACCR1 = 1000; /* регистр, в который по моей мысли должен сохраняться ТАR при срабатывании capture*/
flagCF=1; // флаг
TACTL |= MC0; // пуск таймера, и заряда ёмкости через резюк
while(flagCF); //ждём, пока что-нибудь не сработает
temp2 = TACCR1; // сохраняём
return (temp2);
}
// а вот и прерывания:
#pragma vector=TIMERA0_VECTOR
__interrupt void TA0_timer_ISR (void)
{
TACTL &= ~(MC0+MC1);
flagCF=0; // stop timer
}
#pragma vector=COMPARATORA_VECTOR
__interrupt void TA0_capture_ISR (void)
{
TACTL &= ~(MC0+MC1);
flagCF=0; // stop timer
}
Собственно, как это сделать чудесно расписано, но примера кода нигде нет. И я вроде как всё делаю правильно, таймер запускается, но в регистр не сохраняется. Что бы это могло быть?
-
- Блин! Чего вы по форумам скачите аки иноходец? На электрониксе ответил. - rezident(28.03.2006 20:17, )