ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
2 июня
55275
Дмитpoн (28.03.2006 20:05, просмотров: 1038)
Таймер А по аналог. компаратору - значение надо Джентельмены, проясните или дайте пример кода, Нужно по переднему фронту срабатывания компаратора вычитать данные из таймера А. У меня получился такой код: // настройка компаратора 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 } Собственно, как это сделать чудесно расписано, но примера кода нигде нет. И я вроде как всё делаю правильно, таймер запускается, но в регистр не сохраняется. Что бы это могло быть?