АвторСообщение
постоянный участник


Пост N: 5
Зарегистрирован: 02.08.08
Откуда: Украина, г.Винница
Рейтинг: 0
ссылка на сообщение  Отправлено: 14.10.10 20:12. Заголовок: Генератор.


Поставлена задача изготовить, генератор на несколько фиксированных частот, (10кГц, 3.2кГц, 1.6кГц, 500Гц, 50Гц), с возможностью подстройки относительно основной частоты + или – 10%. Дискретность перестройки на диапазонах 10кГц -25Гц, 3.2кГц, 1.6кГц, 500Гц - 10Гц, 50Гц - 1Гц. Первоначально казалось проблем не будет, но проверил программу в «железе» на частоте 10кГц перестраивается с шагом 70Гц. Частота кварцевого генератора 8,86МГц.
Что можно сделать в этом случаи?
;===============================================================
; Генератор
;================================================================
movlw .127
movwf Temp
;------------------------------------
; Опрос состояния кнопок +,-
;------------------------------------

OUT
btfss PortA,1
incf Temp,F
btfss PortA,1
goto $-1

btfss PortA,2
decf Temp,F
btfss PortA,2
goto $-1
; btfss PortA,3
;
; btfss PortA,4
;
;-------------------------------------
; Формируем сигнал выхода генератора.
;-------------------------------------

btfss PortA,0
goto $+4
bcf PortA,0
call Pauza
goto OUT

bsf PortA,0
call Pauza
goto OUT

;============================================
; Подпрограммы.
;============================================

Pauza
bsf Status,Z
movf Temp,W
movwf Heg_2
decf Heg_2,F
btfss Status,Z
goto $-2

nop
retfie


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 4 [только новые]


moderator




Пост N: 2279
Зарегистрирован: 03.01.07
Откуда: Россия, Рассказово Тамбовская обл
Рейтинг: 4
ссылка на сообщение  Отправлено: 14.10.10 20:59. Заголовок: Мне кажется проблема..


Мне кажется проблема в частоте задающего генератора (или кварца), это жесткое условие?
Заданные частоты кратны 1мкс. Очень удобно было бы сделать на 4МГЦ.
А так выходит, очень не точно и округленно, если привязываться к такту.
0,451.....мкC
Получается, заведомо вводится большая ошибка округления в такт контроллера и формирования из него выходной частоты.
Например, программа паузы около 4,51.....мкс + формирование импульса, очень тяжело попасть на заданную частоту + шаг.
Общий принцип, который я обычно использую. Фиксированный минимальный шаг, кратный выходной частоте, можно формировать с помощью таймера или подпрограммы. Внутри этого Шага , или нескольких Шагов, опрашивать кнопки и изменять выходную частоту.

Такой совет, если правильно понял.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 6
Зарегистрирован: 02.08.08
Откуда: Украина, г.Винница
Рейтинг: 0
ссылка на сообщение  Отправлено: 14.10.10 21:35. Заголовок: Я первоначально став..


Я первоначально ставил кварц на 4МГц, но шаг получается больше 100Гц.
Спасибо за подсказку буду пробовать в этом направлении.


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 2280
Зарегистрирован: 03.01.07
Откуда: Россия, Рассказово Тамбовская обл
Рейтинг: 4
ссылка на сообщение  Отправлено: 14.10.10 22:11. Заголовок: Если минимальный про..


Если минимальный программный шаг 25мкС. Можно подобрать кратный, другой, побольше.
По расписывайте на бумаге
И стройте из него все как из кирпичиков. Шаг удобно формировать таймером и считать их количество, когда сформировать импульс, когда паузу.
Например 1,6КГц = 25шагов
3,2КГЦ = 50 шагов
10КГц = 4шага
1Гц = 40000 шагов
50Гц=2000000 шагов
Т.е. оперировать не тактом, а этим шагом.
50Гц(=2000000 шагов) -/+ 1Гц( = 40000 шагов) -
Ну и опрашивать кнопку 20мс, где то 800 шагов

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 7
Зарегистрирован: 02.08.08
Откуда: Украина, г.Винница
Рейтинг: 0
ссылка на сообщение  Отправлено: 15.10.10 12:10. Заголовок: Это в принципе то, ч..


Это в принципе то, что мне было нужно узнать.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 13
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия