Нужна Ваша помощь!
Необходимо генерировать пачку импульсов (частота 40 кГц) с выхода Timer A на MSP430f149 с определенным интервалом.
Данная задача необходима для ультразвукового детектора.
К сожалению, сейчас получается лишь подавать импульсы с частотой 40 кГц без остановки.
Пример листинга:
void timerA_PWM()
{
//задаем частоту ШИМ
TACCR0=18;
//устанавливаем длительность импульса
TACCR1=10;
//устанавливаем режим вывода «Сброс/Установка» (111)
TACCTL1=OUTMOD_7;
//выбираем SMCLK в качестве источника тактирования
//режим «Вверх»
TACTL=TASSEL_2 +MC_1;
}
void timerA_pause()
{
//задаем интервал времени между измерениями
TACCR0 = 12000-1;
//разрешаем прерывания от таймера
TACCTL0 = CCIE;
//режим «Вверх»;
//коэффициент деления для входной тактовой частоты = 8
//выбираем ACLK в качестве источника тактирования таймера
//устанавливаем бит очистки таймера A
TACTL = MC_1|ID_3|TASSEL_1|TACLR;
}
//Обработчик прерывания таймера A
#pragma vector = TIMERA0_VECTOR
__interrupt void TIMERA0_VECTOR_ISR(void)
{
//Перевод таймера А в режим формирования ШИМ
timerA_PWM();
//Пауза для формирования пачки импульсов и захвата
_delay_cycles(1000);
//Перевод таймера А в режим ожидания
timerA_pause();
}
Помогите милой даме разобраться, пожалуйста!))))))


