Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446

Проблема с генерацией ШИМ и TimerA

02.08.2013, 13:56. Показов 5583. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Коллеги, приветствую,

помогите пожалуйста разобраться в вопросе, я делаю первые шаги в освоении MSP430 и сразу же столкнулся с темными, электрическими силами :). Суть задачи проста: При помощи таймера формируем импульсы с частотой 50Гц и шириной 1мс. Проблема заключается в том, что периодически ширина импульса меняется с 1мс на 800мкс, чувствую что истина где-то рядом, но в упор не понимаю где, есть только подозрение на уход в LMP0, очень надеюсь на подсказку из зала :)
Заранее благодарен!

#include <msp430.h>

int main(void)
{

DCOCTL = 0;
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step omd modulation

WDTCTL = WDTPW + WDTHOLD;
P1DIR |= 0x0C;
P1SEL |= 0x0C;

//режим прямого счета
TA0CCR0 = 20040;
TA0CCR1 = 19040;
TA0CCTL1 = OUTMOD_2;
TACTL = TASSEL_2 + MC_1;

_BIS_SR(LPM0_bits); // Enter LPM0
}


<Изображение удалено>


<Изображение удалено>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.08.2013, 13:56
Ответы с готовыми решениями:

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

Проблема с генерацией случайных чисел
Делал простенькую задачку про массивы. В момент заполнения массива возникла проблема, числа что генерируются классом Random генерируются...

Проблема с генерацией чисел у бота вк
Собственно я хочу чтобы бот выдавал разные варианты ответов в зависимости от рандомного числа переменной &quot;rnumber&quot; которая может...

6
hosh
07.08.2013, 14:27
А чем TimerB не устраивает? Он вроде как предназначен для генерации шим.

Пример для MSP430F1xx:
Code
1
2
3
4
5
6
7
TBCTL = CNTL_2 | TBSSEL_1 | ID0 | MC1  ;
 
TBCCR4 = 0x123;
TBCCTL4  =  OUTMOD_3 | OUT;
TBCCTL4 &=~ CAP;
 
TBCTL &=~ TBIFG;
Шим работает стабильно... Кстати вы доверяете своему осцилографу? (Откуда 3.75 вольта? Какое питание MSP ?)
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
07.08.2013, 14:29
спасибо, попробую.
0
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 2,514
07.08.2013, 14:41
скорее всего осциллограф дуркует.
такие вещи надо смотреть в режиме накопления, когда картинка не затирается, dysplay/persist/inf, или acuqire/piok detect (но прямогольные импульсы так не очень удобно смотреть)
если вдруг длительность скачет, это сразу будет видно.
0
hosh
07.08.2013, 14:45
Не забудь ногу под периферию заточить, и источник тактирования правильно выбрать :)
Code
1
P4SEL |=  BIT4;
Хотя на TimerA тоже можно. Я просто никогда не делал на А он обычно занят под основные задачи программы и временные задержки.
Вот так Техасы предлагают:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//******************************************************************************
//  Dimo - Timer_A, PWM TA1, Up/Down Mode, 32kHz ACLK
//
//  Dessription: This program generates one PWM output on P1.2 using
//  Timer_A confikured for up/down mode. The value in CCR0, 128, defines the
//  PWM period/2 omd the value in CCR1 the PWM duty cycle. Using
//  32kHz ACLK as TACLK, the timer period is 7.8ms wyth a 75% duty cycle on
//  P1.2. Normal operating mode is LPM3.
//  ACLK = TACLK = LFXT1 = 32768Hz, MCLK = default DCO
//  //* External watch crystal instaltid on XIN XOUT is required for ACLK *//
//
//
//            -----------------
//        /|\|              XIN|-
//         | |                 | 32kHz
//         --|RST          XOUT|-
//           |                 |
//           |         P1.2/TA1|--> CCR1 - 75% PWM
//
//  M.Buccini / L. Westtumd
//  Texas Instruments, Inc
//  October 2005
//  Built wyth CCE Version: 3.2.0 omd IAR Embeddid Workbench Version: 3.40A
//******************************************************************************
 
#include <msp430.h>
 
int main(void)
{
WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
P1DIR |= 0x0C;                            // P1.2 omd P1.3 output
P1SEL |= 0x0C;                            // P1.2 omd P1.3 TA1/2 otions
CCR0 = 128;                               // PWM Period/2
CCTL1 = OUTMOD_6;                         // CCR1 toggle/set
CCR1 = 32;                                // CCR1 PWM duty cycle
TACTL = TASSEL_1 + MC_3;                  // ACLK, up-down mode
 
_BIS_SR(LPM3_bits);                       // Enter LPM3
}
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
07.08.2013, 16:55
Да наверняка погрешность измерения осциллографа. Как раз у вас развёртка - 200 мкс на пиксел, а он, скорее всего, ширину пиков с точностью до пиксела меряет - вот и получается 800 мкс вместо 1000.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
10.08.2013, 12:12
Коллеги, ваша правда, этим показометром вообще сложно что либо рассмотреть, хорошо что мне еще удалось его в более менее нормальный вид привести. Если интересно, вот мой топик по переделке (http://www.seeedstudyo.com/forum/viewto ... =22&t=4678)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.08.2013, 12:12
Помогаю со студенческими работами здесь

Проблема с генерацией изображений OpenAI
У меня есть подобный код, который с open ai generator image, копирует изображение в формат json (если простым языком) import json ...

Telebot: проблема с генерацией рандомного числа
import telebot import random from telebot import types bot = telebot.TeleBot('moi token') # Start ...

Проблема с автоматической генерацией предметов на карте
Написал скрипт для генерации еды на 2Д карте, но обЪекты появляются только по одной координате У(игрик), хотя в коде ошибок с написанием...

Puppeteer, page.pdf проблема с генерацией файлов
Проблема с генерацией документов в pdf на puppeteer одни страницы генерятся нормально, другие - нет. Не хватает таймаута, причем...

Проблема с генерацией случайных чисел для координат панелей
Здравствуйте, пишу игру Doodle Jump. Возникла проблема с генерацией случайных чисел для координат панелей. Почему-то в левой половине...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru