Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 25.11.2016, 14:01   #1
akaGunner
Junior Member
 
Регистрация: 21.11.2016
Возраст: 23
Сообщений: 1
Вес репутации: 100/0
akaGunner will become famous soon enoughakaGunner will become famous soon enough
По умолчанию 3хразряндный семисегментник, работающий как частотомер

Добрый день.В общем навыков программирования на ассимблере у меня нет, но задача есть.
Разработать устройство для отображения на 3-разрядном семисегментном индикаторе информацию о частоте входного сигнала от 45.0 Гц до 65.0 Гц с разрешением 0.1 Гц.Форма сигнала синусоидальная с размахом от 1 до 4 вольт (постоянное смещение 2.5 в). Использовать динамическое управление.

В общем схему и номиналы резисторов мне изобразить удалось.Вопрос в том как написать алгоритм программы, по нему я думаю не очень сложно написать саму программу.Проблема состоит также в том что я не совсем понимаю сам принцип работы частотомера.как я понял значение частты мы получаем из выражения F=1/T.А сам период Т вычисляется как N*t, где t-время одного импульса а N-количество эти самых импульсов.В даташите на PIC18F2520 я вычитал что t=Fosc/делитель, я выбрал делитель 4 а Fosc 4 МГц, следовательно импульс равен 1 мкс, а вот с N проблема, чтобы их посчитать нужен период синусоиды моей не зная частоты, я прикинул что можно по положительному перепаду посчитать, т.е когда она значение 2.5 В первый раз пересекает в + и в конце аналогично, но как это реализовать не понимаю
akaGunner вне форума   Ответить с цитированием
Старый 25.11.2016, 14:32   #2
Ученый
Senior Member
 
Регистрация: 27.02.2007
Адрес: Москва
Возраст: 66
Сообщений: 520
Вес репутации: 1469/56
Ученый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud ofУченый has much to be proud of
По умолчанию Re: 3хразряндный семисегментник, работающий как частотомер

Для начала Вам нужен компаратор, который превратит синусоиду в цифровые уровни. Потом с помощью модуля CCP измеряете период. Про CCP читать здесь:
http://www.microchip.com.ru/Support/articles.html
__________________
Не знать - не стыдно, стыдно не учиться.
Ученый вне форума   Ответить с цитированием
Старый 25.11.2016, 17:36   #3
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,092
Вес репутации: 3878/91
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: 3хразряндный семисегментник, работающий как частотомер

Цитата:
Сообщение от akaGunner Посмотреть сообщение
Добрый день.В общем навыков программирования на ассимблере у меня нет, но задача есть.
Разработать устройство для отображения на 3-разрядном семисегментном индикаторе информацию о частоте входного сигнала от 45.0 Гц до 65.0 Гц с разрешением 0.1 Гц.Форма сигнала синусоидальная с размахом от 1 до 4 вольт (постоянное смещение 2.5 в). Использовать динамическое управление.

В общем схему и номиналы резисторов мне изобразить удалось.Вопрос в том как написать алгоритм программы, по нему я думаю не очень сложно написать саму программу.Проблема состоит также в том что я не совсем понимаю сам принцип работы частотомера.как я понял значение частты мы получаем из выражения F=1/T.А сам период Т вычисляется как N*t, где t-время одного импульса а N-количество эти самых импульсов.В даташите на PIC18F2520 я вычитал что t=Fosc/делитель, я выбрал делитель 4 а Fosc 4 МГц, следовательно импульс равен 1 мкс, а вот с N проблема, чтобы их посчитать нужен период синусоиды моей не зная частоты, я прикинул что можно по положительному перепаду посчитать, т.е когда она значение 2.5 В первый раз пересекает в + и в конце аналогично, но как это реализовать не понимаю
Курсовая? Т.е. из года в год педагогу приносят одинаковые решения. Скучно... Хочешь подкину не тривиальное решение, только оно на Си, не сложно перебить на асм. Так точно никто бы не сделал. Используется АЦП таймер и немного математики (т.е. без БПФ) все вместе получаем PLL (ФАПЧ) исходя из которого легко посчитать F=1/T
ampersant вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
12F675, работает не так, как запрограммировано oleg-star Вопросы начинающих 11 30.11.2014 19:31
Как построить выпрямитель-стабилизатор работающий при температуре под 100 градусов? maagalex Общетехнические вопросы 18 29.11.2013 01:08
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39


Часовой пояс GMT +3, время: 13:46.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot