akagunner 0 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба Добрый день.В общем навыков программирования на ассимблере у меня нет, но задача есть. Разработать устройство для отображения на 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 В первый раз пересекает в + и в конце аналогично, но как это реализовать не понимаю. Прошу вашей помощи Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба http://f6csx.free.fr/PROJETS/Fmetre/AN592.pdf Глянул в листинг, мать моя мамочка, сколько строчек, из-за ассемблера, и я так писал когда-то, темный был... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 220 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба Если кварц 4 МГц, то, например: Входной сигнал подать на вход RA0 встроенного аналогового компаратора C1, а на его вход RA3 — середину питания, т.е. общую точку делителя из двух одинаковых резисторов 10 кОм. Выход RA4 этого компаратора соединить со входом RC2 защёлки Таймера 1. На вход предделителя на 8 Таймера 1 подать TCY (т.е. TMR1 будет тактоваться частотой 125 кГц), а его защёлку настроить на режим "Capture mode, every rising edge". Настроить прерывание от защёлки Таймера 1. 650–450 это 200 чисел, с запасом 652–448, а защёлкиваемый диапазон, соответственно, от 1/(8 · 44,8E-6)=2790 до 1/(8 · 65,2E-6)= 1917. Поэтому при заходе в прерывание считывать из CCPR1 защёлкнутое значение, вычитать из него крайние 1917 и делить на 4 (командой сдвига, разумеется). Полученный диапазон 0...218, т.е. всего один байт, записать в регистр результата, который при выходе из прерывания преобразовать командами TBLRD в три байта семисегментных кодов для их непосредственной записи в выходные регистры для отображения семисегментными индикаторами. Данные таблицы сгенерировать программой, минут за 5 написанной на любом удобном высокоуровневом языке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Ruslan1 17 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба А зачем тут ассемблер? Вам не нужно микросекундами врукопашную управлять. Используйте, как тут уже подсказали, Capture Mode, и напишите все полностью на Си. Тут не нужно ничего ассемблерного. http://f6csx.free.fr/PROJETS/Fmetre/AN592.pdf Глянул в листинг, мать моя мамочка, сколько строчек, из-за ассемблера, и я так писал когда-то, темный был... Ну, Вы тоже нашли что советовать, аппнот 20-летней давности, написанный для семечки с 25 байтами RAM. В таких камнях не по темности, а по нужде на ассемблере пишут. ну и да, 20 лет назад и я на ассме еще писал :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCO 0 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба Ну, Вы тоже нашли что советовать, аппнот 20-летней давности, написанный для семечки с 25 байтами RAM. ... ну и да, 20 лет назад и я на ассме еще писал :) "По Сеньке шапка". И грамотный пример для ТС. Для измерения 50 Гц с такой точностью i7 не нужен. И си шарп с джавою - тоже. Именно "тупой" MPASM))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 2 декабря, 2016 Опубликовано 2 декабря, 2016 · Жалоба Ну, Вы тоже нашли что советовать, аппнот 20-летней давности, написанный для семечки с 25 байтами RAM. В таких камнях не по темности, а по нужде на ассемблере пишут. А я по памяти. Там хитро складывают-вычитают импульсы. Раздел-то 8-битовых микроконтроллеров. И название темы. Писал для PIC16 уже и на C, Hi-Tech. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
all_nik 0 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Вот Ваш диплом в готовом виде. http://we.easyelectronics.ru/STM32/chastot...-stm32f10x.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Вот интересно, кто-нибудь, кроме Plain, условия задачки читал? Ни страдания на изиэлектрониксе, ни AN592 не подходят к задачке "измерить сигнал до 65 Гц с точностью 0.1 Гц". Хотя мы всех условий не знаем, если обновлять показания можно раз в минуту, то прокатит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCO 0 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Вот интересно, кто-нибудь, кроме Plain, условия задачки читал? Скорее всего Все читали. Я точно читал. Это троллинг? Хотя мы всех условий не знаем, если обновлять показания можно раз в минуту, то прокатит. При желании можно хоть раз в период обновлять. Кто-нибудь ограничивает в обвесе 8-битника? Использование внутреннего/внешнего EEPROM/FLash не допускается? Использование CPLD - грех? "Киса, скажите мне как художник - художнику: Вы рисовать умеете?" © Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Я не ответ предложил, а путь решения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба При желании можно хоть раз в период обновлять. Кто-нибудь ограничивает в обвесе 8-битника? Использование внутреннего/внешнего EEPROM/FLash не допускается? Использование CPLD - грех? Как по мне, куда больший троллинг - предложения си-шарпа, явы, каких-то EEPROM/Flash/CPLD. Тут нужен любой контроллер. Лю-бой. Если автора этой темы учили PIC18Fxxxx - пусть на нём и делает. Умеет Core-i7 - пусть делает на i7. "Киса, скажите мне как художник - художнику: Вы рисовать умеете?" © Да уж куда мне. Когда мне год назад понадобилось измерять частоту (десяток-другой Гц), я взял и сделал. Без электроникса, увы - тут последние годы флуда ну совсем много стало... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость TSerg 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба я взял и сделал. Без электроникса, И, как профи- по другому решают? Эл-ха - это последняя истина? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 5 декабря, 2016 Опубликовано 5 декабря, 2016 · Жалоба Топикстартер вместо "взял и сделал" пошел другим путем, более затратным, но менее интересным. :) https://electronix.ru/forum/index.php?showtopic=139082 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slavka012 0 6 декабря, 2016 Опубликовано 6 декабря, 2016 · Жалоба Как вообще людям не стыдно такие простейшие задачи спрашивать как решать? Меряешь время между positive edges и делишь чтобы получить частоту. Для нужной точности нужно разрешение всего в 20 uS. Достигается тривиально. Где такие олухи учатся, мне интересно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VCO 0 6 декабря, 2016 Опубликовано 6 декабря, 2016 · Жалоба Как по мне, куда больший троллинг - предложения си-шарпа, явы, каких-то EEPROM/Flash/CPLD. Дык во внутреннюю EEPROM или FLASH PIC18 можно зашить дешифратор двоичного кода в код семисегментного индикатора, равно как и в CPLD. В последнем случае разгружаем МК от рутины и перегрузке по току. Тут нужен любой контроллер. Лю-бой. Если автора этой темы учили PIC18Fxxxx - пусть на нём и делает. Умеет Core-i7 - пусть делает на i7. Дык вообще ничего не умеет и не понимает, надо начинать с основ основ. Частотомер - это одно, отображение - другое. Надо было выяснять постепенно. Но теперь уже ничего не надо... Да уж куда мне. Когда мне год назад понадобилось измерять частоту (десяток-другой Гц), я взял и сделал. Без электроникса, увы - тут последние годы флуда ну совсем много стало... Что есть флуд, а что не флуд - не так уж легко понять. В данном случае ТС оказался в роли флудера, а флудеры - в роли модеров ;) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться