Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Узнать частоту (Узнать частоту на выходе)
Узнать частоту
xaker-sss Дата: Пн, 14.05.2012, 11:08  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Добрый день.
Кто скажет какая частота будет на выходе с таким кодом PIC16F84 4Мгц, хочу собрать генератор.
============
A=0
INIT:
LOW PORTA.0
PAUSE A
HIGH PORTA.0
PAUSE A
GOTO INIT
============


ПРОТОН ЭТО ВЕЩЬ.
ЯНДЕКС Дата: 14.05.2012
anatol Дата: Пн, 14.05.2012, 12:43  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

LOW PORTA.0 примерно 2 команды
PAUSE A - по идее должно быть выброшено компилятором, но не факт
тогда максимум 250 кгц.
xaker-sss Дата: Пн, 14.05.2012, 12:58  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Quote (anatol)
PAUSE A - по идее должно быть выброшено компилятором

Переменная А будет меняться.
В код забыл добавить команду, в идеале вот так
============
A=0
INIT:
IF PORTA.1 = 1 THEN GOTO KEY
LOW PORTA.0
PAUSE A
HIGH PORTA.0
PAUSE A
GOTO INIT
KEY:
============
Мне нужен ген до 200кгц, значит должно получиться.
Спасибо за помощь.


ПРОТОН ЭТО ВЕЩЬ.
anatol Дата: Пн, 14.05.2012, 13:35  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 472
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Quote (xaker-sss)
Переменная А будет меняться.
...
Мне нужен ген до 200кгц, значит должно получиться.

до 200кгц не потянет с Переменная А будет меняться Это выливается в старт подпрограммы и выход из нее. Даже без прерываний дополнительные шаги, а с прерываниями добавьте сохранение счетчиков и регистров. Разве по условию возникновения прерываний (смена частоты) менять код.
Принцип простой. Частота генератора = такту. Команда = 4 такта. Т.е. одна команда = 1 мгц при генераторе = 4 мгц, 2 команды = 500 кгц, 4 команды = 250, 8 команд в цикле = 125 и т.д.
xaker-sss Дата: Пн, 14.05.2012, 13:51  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Команда IF PORTA.1 = 1 THEN GOTO KEY это кнопка во вход в процедуру для вывода на LCD дисплей и прибавление, убавление переменной А, генератор будет работать только когда PORTA.1 = 0, единственно в отличии от первого кода добавилась проверка PORTA.1

ПРОТОН ЭТО ВЕЩЬ.
ADMIN Дата: Пн, 14.05.2012, 19:12  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Есть простой способ - написать программу и прогнать в протеусе
xaker-sss Дата: Пн, 14.05.2012, 23:38  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Quote (ADMIN)
написать программу и прогнать в протеусе

Не пойму я как в протеусе частоту узнать.

Добавлено (14.05.2012, 23:38)
---------------------------------------------
Quote (xaker-sss)
Не пойму я как в протеусе частоту узнать.

Все разобрался ГУГЛ рулит.
Как говориться, если все детали поменял, а он не работает, надо проверить предохранитель.
Спасибо всем.


ПРОТОН ЭТО ВЕЩЬ.
Сообщение отредактировал xaker-sss - Пн, 14.05.2012, 23:39
ADMIN Дата: Вт, 15.05.2012, 06:40  |                                                                                                                Сообщение # 8
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Впротеусе есть такой компонент - на вкладке измерительных приборов - frequency meter. Цепляй его на выход пика и в свойствах укажи - Frequency meter
xaker-sss Дата: Вт, 15.05.2012, 08:40  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Quote (ADMIN)
Впротеусе есть такой компонент - на вкладке измерительных приборов - frequency meter. Цепляй его на выход пика и в свойствах укажи - Frequency meter

Я так и зделал, надо было-бы с этого и начинать, а не парить людям мозги.
Плохо я еще в протеусе разбираюсь, надо учиться.


ПРОТОН ЭТО ВЕЩЬ.
ADMIN Дата: Вт, 15.05.2012, 11:19  |                                                                                                                Сообщение # 10
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Кто-то кому-то мозги парит?
xaker-sss Дата: Вт, 15.05.2012, 12:30  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Quote (ADMIN)
Кто-то кому-то мозги парит?

Естейственно я, вы меня наверно не правильно поняли. Извините.


ПРОТОН ЭТО ВЕЩЬ.
ЯНДЕКС Дата: 15.05.2012
ADMIN Дата: Вт, 15.05.2012, 16:06  |                                                                                                                Сообщение # 12
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Да... интонации в тексте не увидишь. Действительно, не так понял
xaker-sss Дата: Ср, 16.05.2012, 12:53  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Еще раз всем спасибо.

ПРОТОН ЭТО ВЕЩЬ.
xvovanx Дата: Ср, 13.11.2013, 11:00  |                                                                                                                Сообщение # 14
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 326
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Вопрос по длительности паузы. В литературе (Хелинском, Хелибайке и др.) пишут, что при 4МГц кварце "pause 1000" в программе (4такта) дает задержку 1 сек. У меня же в железе и в Протеусе для получения паузы в 1 сек нужно в проге писать  "pause 4000". Что за фокус? Пик чтоли работает на гармонике? Менял и кварцы и пики. В начале программы даже выставлял OSC 4, хотя по умолчанию и так должно быть 4.
Второй вопрос про 16F876 и  16F876А. Проги отлично работают на 876, эти же проги скомпилированные и запрограмированные под 876А (фьюзы, конфигурация) наотрез не хотят запускаться на 876А в железе (в Протеусе всё гуд). Сколько ни бился ни на 873А ни на 876А не могу запустить. Так во все свои поделки и ставлю пики без буквы А.
P.S. в ПикБайсике не новичок, с паяльником тоже на ты, пишу серьезные программы, а вот в элементарном как в трех березах...

Сообщение отредактировал xvovanx - Ср, 13.11.2013, 11:18
MiXaS Дата: Ср, 13.11.2013, 11:19  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 550
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Я полагаю, что у Вас неправильно настроен кварц.
Цитата xvovanx ()
В литературе (Хелинском, Хелибайке и др.) ходит информация, что при 4МГц кварце "pause 1000"
Это так и есть, но если define osc 4.

Define osc - это настройка компилятора, значение которой принимается к расчетам для команд pausa, hrsin, hrsout и т.д. Если у Вас При больших значениях паузы только секунда выдерживается, значит кварц стоит , например 16 Мгц, а define osc 4. Если define не указан, то компилятор автоматицески делает расчет под 4 Мгц.

Также рекомендую почитать даташит, раздел биты конфигурации> выбор работы генератора.

По поводу протеуса. Лично замечено, что протеус все подобные задержки не всегда привильно делает. Связано это скорее всего с "мягким" реальным временем. Контроллер же работает в режиме "Жесткого" реального времи. Чем сложнее и масивнее код, тем дольше по времени его выполняет протеус. Возможно у меня комп недостаточно быстрый, поэтому я это замечаю. Но у меня была обратная проблема. Мне нужна задержка в 3 секунды, а протеус её выполнял 6-9 секунд. Правда я это делал через таймер и прерывание.

Добавлено (13.11.2013, 11:19)
---------------------------------------------
Код лучше покажите, там будет понятнее

Форум Picbasic.ru » Программирование МК » PicBasicPro » Узнать частоту (Узнать частоту на выходе)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: