Страница 2 из 2
Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 09:03:23
Symbiosis
Elvys писал(а):Symbiosis писал(а):Я делаю умножитель импульсов на mega8
Извращение какое-то.
А вопрос в том, как реализовать это красиво? правильно...
Красиво и правильно будет использование DDS с управлением от mega8. В крайнем случае можно использовать внутренний СТС, но спектр там будет тот еще.
Ну стартовое сообщение то терпения не хватило )
А если бы чуточку ниже почитал, то увидел бы что собирается на тини13
Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 09:11:30
Elvys
Symbiosis писал(а):А если бы чуточку ниже почитал, то увидел бы что собирается на тини13
А чуточку ниже - у меня желания не было.

Тут бредовых тем вагон и тележка, и все их до конца читать?

Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 09:14:14
Symbiosis
КРАМ писал(а):Как вариант, контролировать текущий массив входных измерений.
Только нужно учесть скорость изменения входной частоты...
Это традиционная сигнальная задача фильтрации...
Думаю нет нужды. Проблема в одном случае, когда счетчик прерываний внешних = 0, тоесть переменная temp = 0, то вот этот кусок кода выполняется неверно
Код: Выделить всё
while (1)
{
calc = temp/1,25 // ((temp / 0,5) /2,5) пауза половину периода и коэффициент деления
PORTB.2 = 0;
delay_ms(calc);
PORTB.2 = 1;
delay_ms(calc);
};
0/1.25 будет 0. Т.е. задержка 0. и идет генерация на максимальной частоте. Потому и вижу меандр 58 кГц.
Я думаю попробовать инициализировать переменную изначально как 1. и сбрасывать ее тоже на 1. А число отсчетов таймера взять больше, 300 например, вместо текущих 30, чтобы эта единица давала пренебрежимо малый вклад в моей задаче.
Какие иные варианты ?
Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 09:58:47
ibiza11
иной вариант - генерация на таймере, а не на delay_ms()

Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 10:10:40
ARV
или
Код: Выделить всё
if(calc){
PORTB.2 = 0;
delay_ms(calc);
PORTB.2 = 1;
delay_ms(calc);
}
Re: Генерация меандра на Mega
Добавлено: Чт апр 10, 2014 12:02:03
КРАМ
Symbiosis писал(а):
Думаю нет нужды. Проблема в одном случае.....
Какие иные варианты ?
Нужды у Вас нет от отсутствия вариантов...
Бескомпромиссное решение заключается в следующем.
Подаем входной сигнал на схему захвата и накапливаем массив измерений периода В СКОЛЬЗЯЩЕМ ОКНЕ (кольцевом буфере).
затем интегрируем значения в массиве и получаем период сигнала. Делим-умножаем на коэффициент и загружаем таймер формирования выходного сигнала.
При обработке массива можно вычислить распределение точек, определив кучность. если наблюдается хаотичные метания элементов массива - входной сигнал отсутствует и захват происходит по шуму....