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

 
 
> Измерение частоты
A R T
сообщение Feb 14 2007, 10:50
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-06-06
Из: Сарапула
Пользователь №: 18 275



Доброго времени суток ВСЕМЪ!!!

Измеряю частоту синусоидального сигнала в диапазоне от 20 до 50Гц. Периодически (примерно один раз на пять замеров) происходит ошибка измерения (отклонение от реальной в 2…3 раза в обе стороны!!!).
Инициализация, обработка препывания и расчет частоты приведены ниже:

void timera_init()
//Clock source=ACLK
//Divider=1
//TIMACLK=32,768KHz
//Frequency=258,0Hz ( 3,88mS)
{
TACTL=0x00; //stop timer
//channel0
TACCTL0=0x00;
TACCR0=0x7F;
//channel1
TACCTL1=0x64;//TAOM1.1,TAOM1.0,TAOUT1
TACCR1=0x7F;
//channel2
TACCTL2=0x4110;//TASCS2,TACAP2,TACCIE2
TACCR2=0x00;

TAR=0x0000;//clear timer counter
TACTL=0x116;//TASSEL.0,TAMC.0,1,TAIE
}

#pragma vector=TIMERA1_VECTOR
__interrupt void ta_interrupt_routine(void)
{
if(TACTL&TAIFG)//Если таймер досчитал до 125
{
fTimeCounter++;//инкрементируем счетчик таймера.
TACTL&=~TAIFG;//Чистим флаг!
}

if(TACCTL2&CCIFG)//Если фронт сигнала,
{
fTime=fTimeCounter;//снимаем количество переполнений ТА.
fTime0=fTime1;//состояние ТА на начало процесса.
fTime1=TACCR2;//состояние ТА на конец процесса.
fTimeCounter=0;//обнуляем счетчик переполнений ТА.
TACCTL2&=~CCIFG;//Чистим флаг!
}
}

void main(void)
{

//Определяем частоту:
float fFreq=1/(2*(fTime*3.90625e-3+(fTime1-fTime0)*30.517578125e-6));

}

Также имеются прерывания ADC (неповторяющаяся последовательность каналов, в прерывании перезапуск).

Реализую на MSP430F1122. Тактируюсь от часового кварца (32768Гц). Частота тактирования стабильная.

Пожалуйста посоветуйте, что можно предпринят.

Зарание спасибо всем ответившим!!!


--------------------
Сделал трэш - разбудил Ктулху!!!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:26
Рейтинг@Mail.ru


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