| Автор | Сообщение |
loony Участник Сообщения: 370
|
Может ли кто-нибуть скорректировать прошивку PIC16F84A.Проблема такова:собрал генератор телесигналов на PIC16F84A+кодер PAL+модулятор от видика,прибор получился компактным,всем устраивает,одна беда-нет формирователя сигнала звука.Можно конечно сгородить генератор на дискретных элементах,но хотелось бы по другому поступить.У PICа есть неиспользуемые входы-выходы,cформировать на одном из них програмно сигнал 1КГЦ,поотом проинтегрировать и пустить на модулятор.Получилось бы компактно,к чему и стремлюсь.Программатор есть,одна беда-никогда не занимался написанием программ для PICов.Помогите пожалуйста в этом деле.Прошивка и кусок схемы сдесь,взяты со странички Александра Мусатова:Заранее благодарен за помощь.
ГЕНЕРАТОР.rar 9,06 КБ Скачано: 768 раз(а)
|
|
Vasilij Участник Сообщения: 300
|
В программной памяти (flash) PIC16F84A осталось всего 10 байт свободного места, вряд ли поместится |
|
loony Участник Сообщения: 370
|
А нельзя-ли,Vasilij,влить эту прошивку в PIC с большим объемое памяти?Извиняюсь,я в этом деле чайник. |
|
Vertyanov_SS Участник Сообщения: 414
|
... а исходники генератора у Вас есть ? Если нет то куда вы вставите кусок кода по генерации 1000Гц даже если память позволит ?
Варианта думаю три:
1 Писать самому всю прогу и уже установить 1000 Гц где нужно и когда нужно, разумеется подумав о "размере" программного кода контроллера
2 Берем disassembler и "раскладываем" весь код - ЧАЩЕ муторней нежели написать заново.
3 Оставить как есть и слепить на к примеру NE555 генератор .... |
|
loony Участник Сообщения: 370
|
Спасибо,пожалуй третий вариант самый подходящий. |
|
Vasilij Участник Сообщения: 300
|
п. 2 приведенный Vertyanov_SS, относятся и к ПИКу с большим объемом памяти.
п. 1 вытекает из п. 2
Чисто теоретически (программа минимум ), наверняка в контроллере задано "системное время" - по прерыванию от внутреннего
таймера. Можно попробовать ввести еще одну переменную и скажем, декрементировать ее в обработчике
прерывания, а в основном цикле при достижении 0 переключать порт и восстанавливать ее значение. Хватит ли на это
10ти байт могут "на вскидку "сказать те, кто работает с ПИК, первую часть п2 проделать конечно же придется.
В любом сл. получаем меандр, простым RC фильтром синусоиду (если все же она нужна) из него не выделить. Подобие синусоиды
несложной схемой можно получить погуглив "функциональный генератор"(кажется был такой на К561хх логике) -когда то они были в моде. |
|
starko Гость 62.183.*.*
|
Нет в этом проекте никаких прерываний и быть не может, проц и так на 100% загружен, какие там еще прерывания...
Не верите - легко проверить, дизассемблировать (6 секунд) и посмотреть, что там с адреса 0х0004.
Вставить каку-нить ЗЧ в принципе можно, пусть не 1кгц, а что-то кратной строчной, но то геморрой. |
|
Vasilij Участник Сообщения: 300
|
В.Л.Шило "Популярные цифровые микросхемы" , функциональный генератор (б) , в djvu
func_gen.rar 6,46 КБ Скачано: 746 раз(а)
|
|
AlexM Участник Сообщения: 885
|
Самое простое заменить PIC16F84 на PIC16F628 и "заюзать" ШИМ. |
|
Satrap Гость 194.44.*.*
|
Не парьтесь, ничего не получится с правкой прошивки. Прерывания от таймера (как и все остальные тоже) в этой программе не обрабатываются, а это был бы единственный реальный способ безболезненно вмешаться в программу. Вставка единственной команды может сделать прогу совершенно неработоспособной. Не говоря уже про какой-то дополнительный цикл с задержками, который нарушит все временнЫе интервалы, на которые рассчитывал автор. Так что или внешний генератор лепить или то, что AlexM сказал. Но при этом много чего менять придётся, практически с нуля всё переписывать. У PIC16F628 совершенно другие служебные регистры, больше одного банка памяти регистров общего назначения, совсем другое слово конфигурации. Получится абсолютно другая программа. |
|
|