Easyelectronics.ru

Электроника для всех
Текущее время: 26 май 2018, 22:17

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: MSP430f149 Передавать пачку импульсов
СообщениеДобавлено: 15 май 2017, 19:24 
Здравствуйте!

Зарегистрирован: 10 май 2017, 20:57
Сообщения: 2
Всем привет!

Кто-нибудь может помочь с реализацией данной задачки?

Нужно посылать пачку импульсов из 5 импульсов частотой 40 кГц, после чего делать паузу на 200 мкс.
Есть пример:
#include "stdio.h"
#define XTALL 16.0
#define delay_us(us) __delay_cycles (XTALL * us);
#define delay_ms(ms) delay_us (1000 * ms);

void timerA_PWM()
{

TACCR0= 18;

TACCR1=7;

TACCTL1=OUTMOD_7;// + CCIE;

TACTL |= TASSEL_2;
}
void main(void)
{

P1DIR|=BIT6;
ÿ
P1SEL|=BIT6;

WDTCTL=WDTPW+WDTHOLD;
timerA_PWM();
while(1)
{
TACTL |= MC_1; // Timer ON
delay_us(6);
TACTL &= ~MC_1; // Timer OFF
delay_ms(100);
}
_BIS_SR(LPM0_bits+GIE);
}
Но данный алгоритм не работает правильно, на осциллографе первый импульс дрожит в пачке, чего не должно быть.

Предложили через прерывания сделать, но я неочень хорошо умею с ними работать.

Помогите пожалуйста с данной задачей!

Заранее спасибо!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MSP430f149 Передавать пачку импульсов
СообщениеДобавлено: 15 май 2017, 21:39 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2896
так делать конечно не очень хорошо, но вообще, чтобы не было джиттера, таймер надо сбрасывать каждый раз:
просто вместо TACTL &= ~MC_1; // Timer OFF
надо сказать TACTL |= TACLR;
только надо учесть что там всё сбрасывается, включая установки предделителя, хотя в данном случае это не важно.

ну или как правильно подсказали 100мс не процессором считать, а в прерывании от таймера, и включать/выключать выход соответственно там же синхронно с таймером тогда тоже ничего дрожжать не будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: MSP430f149 Передавать пачку импульсов
СообщениеДобавлено: 17 май 2017, 00:20 
Старожил
Аватара пользователя

Зарегистрирован: 23 окт 2012, 15:51
Сообщения: 462
Может не совсем по теме.. а не много ли для 1ой серии 16мгц??? Насколько помню (давно было) уже на 12мгц наблюдалась нестабильность работы контроллера...

_________________
#define ? ?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB