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

 
 
> Плавная перестройка чатоты генерации меандра., STM32F103
misyachniy
сообщение Jun 23 2014, 15:28
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Для поиска чатоты резонанса поисковой катушки (ориентировочно 5..20 кГц) нужно генерировать меандр с помошью таймера.
Понятно что можно менять как предделитель таймера, так и с помощью регистров OCR.

Прошерстил интернет в поисках готового решения или "рыбы" но не нашел.

Предлагается в основном формирование синусоиды даже с дискретностю до 0.1 или 0.01 Гц.

Меня бы устроила шкала в 10Гц.

Есть ли где "рыба"?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dac
сообщение Jun 23 2014, 15:51
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



делал одну поделку, шаг зависит от частоты, в районе 20кгц как раз около 10Гц, на нижних частотах шаг лучше
кусок который выставляет частоту
CODE
#define PWMDEVMAX 6000
#define PWMDEVMIN 960
#define SYSFREQ 48007000

int frequency = 27850;
unsigned short pwmDevider = 1700;


frequency = SYSFREQ/(unsigned int)(pwmDevider + 1);
pwm_config(pwmDevider);

void pwm_config(unsigned short dev)
{
unsigned int i =10000;

#define PERIOD_VAL 861
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
uint16_t CCR1_Val;

if (dev < PWMDEVMIN) dev = PWMDEVMIN;
if (dev > PWMDEVMAX) dev = PWMDEVMAX;
CCR1_Val = dev/2;
TIM_DeInit(TIM1);
i = 10000;
while (i--);
TIM_TimeBaseStructure.TIM_Prescaler = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseStructure.TIM_Period = dev;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);

/* Channel 1 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_Pulse = CCR1_Val;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Reset;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Reset;

TIM_OC1Init(TIM1, &TIM_OCInitStructure);

/* Automatic Output enable, Break, dead time and lock configuration*/
TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_1;
TIM_BDTRInitStructure.TIM_DeadTime = 35;
TIM_BDTRInitStructure.TIM_Break = TIM_Break_Disable;
TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;
TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;

TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);

/* TIM15 counter enable */
TIM_Cmd(TIM1, ENABLE);

/* Main Output Enable */
TIM_CtrlPWMOutputs(TIM1, ENABLE);



}


Сообщение отредактировал IgorKossak - Jun 23 2014, 17:55
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- misyachniy   Плавная перестройка чатоты генерации меандра.   Jun 23 2014, 15:28
- - ViKo   Если для поиска резонанса подавать прямоугольный с...   Jun 24 2014, 08:51
|- - misyachniy   Цитата(ViKo @ Jun 24 2014, 11:51) Если дл...   Jun 24 2014, 15:37
||- - Scientificer   Цитата(misyachniy @ Jun 24 2014, 18:37) В...   Jun 24 2014, 17:49
||- - misyachniy   Написал на Builder несколько ускоренную программу...   Jun 25 2014, 15:44
|- - jcxz   Цитата(ViKo @ Jun 24 2014, 14:51) Если дл...   Jun 24 2014, 16:06
|- - misyachniy   Цитата(jcxz @ Jun 24 2014, 19:06) Только ...   Jun 24 2014, 16:32
- - Genadi Zawidowski   Просто для информации... Около секунды! Это чт...   Jun 25 2014, 19:24
- - misyachniy   ЦитатаПросто для информации... Около секунды! ...   Jun 26 2014, 18:54
- - Genadi Zawidowski   Абсолютно бесполезный ответ - это мои эмоции по Ва...   Jun 26 2014, 19:01
|- - alexf   DDS - безусловно правильное решение. Не внешний, а...   Jun 29 2014, 00:21
- - Golikov A.   младшие ли биты? Если прибавлять по 256 то в них в...   Jun 29 2014, 05:38
- - rx3apf   Совершенно верно - именно старшие биты аккумулятор...   Jun 29 2014, 08:01
- - Сергей Борщ   Из таблицы - в ЦАП, с ЦАПа - на аналоговый фильтр ...   Jun 29 2014, 09:00
- - misyachniy   Цитата(Сергей Борщ @ Jun 29 2014, 12:00) ...   Jun 29 2014, 09:59


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

 


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


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