Помогите разобраться новичку - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 111231011»
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Помогите разобраться новичку
G2212 Дата: Пт, 11.01.2013, 13:32  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2012

Статус: Offline

Здравствуйте, помогите разобраться с написанием программы на Протоне.
В схемотехнике разбираюсь хорошо, паяю уже очень давно. Прошить камень не проблема, но программы никогда не писал. Хочется научиться делать хотя бы простые программы под себя.
Есть такая задача (для одного аппарата (МД) : При нажатии на кнопку - состояние портов например В2=0 и В3=1 должны менять свое состояние на противоположное т.е. В2=1 и В3=0.
Одновременно на одном выводе В0 ( я использовал программу Sound2 для В0 и В1) - должен постоянно идти звуковой сигнал порядка 400 - 800 Гц.
По отдельности эти программы моделируются на Протеусе, а вот чтобы они работали вместе не получается. Подскажите как правильно сделать чтобы подпрограммы не мешали друг-другу, вот примерный код:

Device=16F628 ;Используемый микроконтроллер
Xtal = 4 ' Частота осциллятора 4 МГц
All_Digital=true ' Установить все порты цифровыми входами/выходами

TRISB = %00000000 ' PORTB все выход
PORTB = 0 '
Symbol S1 = PORTB.0 ' Вывести частоту 500 Гц на PORTB.0
Symbol S2 = PORTB.1 ' Вывести частоту 1500 Гц на PORTB.1
Symbol LED1 = PORTB.2
Symbol LED2 = PORTB.3
Symbol SW1 = PORTA.0

' ---переключение B.2 B.3 кнопкой A.0 ---------------

main: ' Начало главной программы

High LED2
Low LED1
If SW1=0 Then
High LED1
Low LED2
DelayMS 200
Low LED1
High LED2
EndIf
GoSub Snd ' Выполнить подпрограмму Snd

GoTo main: ' Возврат в начало главной программы

' ------------- Генерировать в течении 10 секунд две частоты 500 Гц и 1000 Гц.-------
Snd:
Sound2 S1 , S2 , [1000 \ 500\ 10000] ' sound

GoTo Snd

Сообщение отредактировал G2212 - Пт, 11.01.2013, 13:33
ЯНДЕКС Дата: 11.01.2013
dimitriy-bc Дата: Пт, 11.01.2013, 14:00  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

G2212, здравствуйте. Я тоже начинающий. Если Вам не сложно, положите файлы протона и протеуса в одну папку и прикрепите к сообщению. Чем смогу, помогу.
Сообщение отредактировал dimitriy-bc - Пт, 11.01.2013, 14:41
G2212 Дата: Пт, 11.01.2013, 14:45  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2012

Статус: Offline

Файлы проекта
Спасибо.
Буду пробовать HPWM. Хочется получить нужный результат.
Дело в том что я описал реально работающую программу работы МД Тезоро. С одного контакта идет звуковой сигнал, один канал с помощью АЦП проверяет напряжение и выдает серию импульсов при включении, плюс управление переключением режимов работы МД - все металлы или дискрим.
В МД стоит PIC16F77, но прошивка "залочена" - прочитать не удается. Вот приходится "изобретать" ;).
Прикрепления: PIC628.rar(19Kb)

Сообщение отредактировал G2212 - Пт, 11.01.2013, 16:18
retas Дата: Пт, 11.01.2013, 15:31  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 462
Репутация: 10   ±
Замечания:   ±
На сайте с 10.09.2007

Статус: Offline

G2212!
Подобного сделать не удастся ибо Sound создаётся програмным методом. В какой то мере вам может подайти HPWM, он апаратный
и на его фоне можете ещё что либо делать. А так помните - МК не может выполнять команды паралельно а только последовательно,
однако, если хорошенко помучиться и работать на большой скорости, то можно достичь мнимой паралельности.


Новый подход к питанию потребителей переменного тока: http://ekolaif.ucoz.ru
dimitriy-bc Дата: Пт, 11.01.2013, 16:01  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

G2212, попробуйте это.

Добавлено (11.01.2013, 16:01)
---------------------------------------------
retas, насколько я понял, G2212, как и я, только начинает осваивать протон. Ему сейчас надо понять как вообше строятся команды. И еще, если Вам не сложно, помогите разобраться мне в вопросе http://www.picbasic.ru/forum/5-1281-1 спасибо.
G2212, еще раз прочитал Ваше первое сообщение. Вы пишете о двух подпрограммах. Одна есть, метка Snd:, вторая... ?. И если можно, точнее опишите нужный Вам алгоритм.
Прикрепления: 0420957.rar(51Kb)

Сообщение отредактировал dimitriy-bc - Пт, 11.01.2013, 16:50
доцент2 Дата: Пт, 11.01.2013, 17:45  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 311
Репутация: 1   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Могу предложить один из вариантов получения звукового сигнала при этом МК будет продолжать выполнять команды:
если по условию возможно, то на нужный пин МК цепляется зумер на 5В с генератором, а пин в ходе выполнения программы переводиться в единичное состояние, вот Вам и звук.
dimitriy-bc Дата: Пт, 11.01.2013, 18:48  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Если я правильно понял, то G2212, хочет собрать свой МД. и ему нужно, чтоб звуковой сигнал модулировался при изменении определенного условия по входу АЦП. В мою юность МД, делали на детекторе нулевых биений. Сейчас, возможно как то по другому. Если делать на детекторе нулевых биений, то проще использовать команду PulsIn.
доцент2 Дата: Пт, 11.01.2013, 19:40  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 311
Репутация: 1   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Что такое МД?
G2212 Дата: Пт, 11.01.2013, 19:52  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2012

Статус: Offline

На биениях уже давно не собирают МД (металлодетекторы). Сейчас собирают IB , я уже собрал несколько разных. Tesoro СИБОЛА.
Для этого аппарата хочу сделать озвучку и переключатель режимов.
Звук от МК должен быть постоянно - он включается самой схемой МД.

Сообщение отредактировал G2212 - Пт, 11.01.2013, 19:58
dimitriy-bc Дата: Пт, 11.01.2013, 20:14  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

G2212, что конкретно Вы хотите от МК.
G2212 Дата: Пт, 11.01.2013, 21:02  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2012

Статус: Offline

1. Один выход МК должен выдавать прямоугольный сигнал звуковой частоты постоянно.
2. При нажатии кнопки нужно чтобы два выхода МК (один 1 другой 0) меняли состояние на противоположное.
3. При отпускании кнопки состояния выходов должно вернуться к изначальному состоянию один 0 и другой 1.
Этими сигналами можно будет коммутировать электронные ключи на 4053
dimitriy-bc Дата: Пт, 11.01.2013, 22:21  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

ну тогда вот это:
Прикрепления: 9097470.rar(52Kb)
доцент2 Дата: Пт, 11.01.2013, 23:04  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 311
Репутация: 1   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

Если звук должен быть постоянно, то почему пищалка с генератором Вам не подходит, поставте генератор на логике с запуском от МК.
Перевели один раз нужный пин в 1 - генератор запустился и не надо ресурсы МК съедать и голову ломать.
Или Вы хотите менять частоту сигнала при изменении какого то условия?

Сообщение отредактировал доцент2 - Пт, 11.01.2013, 23:07
dimitriy-bc Дата: Сб, 12.01.2013, 00:34  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 190
Репутация: 1   ±
Замечания:   ±
На сайте с 19.03.2012

Статус: Offline

Цитата (доцент2)
звук должен быть постоянно

Мне это тоже не совсем понятно.
G2212 Дата: Сб, 12.01.2013, 11:18  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 37
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2012

Статус: Offline

Цитата (доцент2)
Если звук должен быть постоянно, то почему пищалка с генератором Вам не подходит, поставте генератор на логике с запуском от МК.

Сейчас почти так и работает. Звук берется от генератора Тх , делится 4024 и подается на усилитель.

Цитата (доцент2)
Или Вы хотите менять частоту сигнала при изменении какого то условия?

В будующем хочу сделать - Vco. (так сделано в МД Tejon)
Смысл такой: При прохождении катушки МД над целью в канале все металлы берется сигнал и подается на вход МК. Чем ближе цель тем больше амплитуда сигнала. При увеличении амплитуды должна увеличиваться частота и звукового сигнала. Так проще определить где капать.

Посмотрел более внимательно пару вариантов схем: Задача упрощается - звуковой сигнал должен включаться от сигнала из канала все металлы. В оригинале положительный сигнал и подается на порт А0.
т.о. МК находится в спящем режиме, при наличие сигнала (любого металла) МК "просыпается" и выдает звуковой сигнал.
В дорогих МД типа Tejon еще добавлен режим Vco.

Сообщение отредактировал G2212 - Сб, 12.01.2013, 11:34
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Помогите разобраться новичку (как правильно?)
Страница 1 из 111231011»
Поиск: