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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Вспомним звуки DANDY (Команда SOUND)
Вспомним звуки DANDY
555serg Дата: Пт, 08.11.2019, 11:39  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Приветствую коллеги, всем хорошего дня.
Возникла необходимость получения  звуковых оповещений от микроконтроллера, обратил внимание на
команду SOUND. Прошил макетку на PIC16F84A прогой которая в переведенном мануале на PROTON +
IDE, примером для демонстрации работы команды SOUND. Результат порадовал, развел и спаял рабочую
плату, но на камне 16F676-I/SL  в smd. Та же самая прога скорректированная под новый проц. отказалась
работать так как надо. Динамик выдал лишь так называемый белый шум, по двум остальным звуковым
фрагментам лишь щелчки. Подключил осцил., там где ожидался обычный меандр как было  изначально
на 84 камне, высокий уровень с редкими провалами до 0 вольт. Взял прошил той же прогой (естественно
сконфигурированной для этого камня ) контроллер 16F876A -I/SP на другой макетке, результат -  отрица- тельный, так же звучит лишь белый шум, а на месте ожидаемых звуков тупо щелчки. 
  Если кто сталкивался с похожим недоразумением, просьба отозваться.
Заранее спасибо.))
ЯНДЕКС Дата: 08.11.2019
ivan_fd Дата: Пт, 08.11.2019, 16:28  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Без  кода ответить трудновато. Код пакажите.
555serg Дата: Сб, 09.11.2019, 02:33  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

ОК, спасибо что согласились помочь)) Сейчас уже ночь, завтра выложу код, заодно прошью 
этой прогой еще один камень, вспомнил  еще про одну макетку но уже на 16F877 процессоре.
555serg Дата: Сб, 09.11.2019, 16:21  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Провел испытания данной проги на микроконтроллере PIC16F877A, к выходу PIN (транзисторный ключ,
а в коллекторную цепь динамик ) был подключен PORTC.0  Программа отработала как и положено.)))
Снова залил эту же прогу в PIC16F876A контроллер, выход PIN для удобства был сконфигурирован на
PORTA.4  Как и раннее отработал лишь белый шум, основного звука нет. Так же было и на 676 камне.
Напоминаю, что на камне 84А прога так же успешно от играла требуемые звуки.
Саму программу прикрепляю ниже. Комментарии были крокозябрами, я их удалил. Оригинал в файле.
Сейчас могу проверить на 876 камне. Плата на 676 камне для которой все делалась - на работе осталась.
'****************************************************************
 Device = 16F876            
 Xtal = 4                     
'----------------------------------------------------------------------------
 Dim LOOP As Byte             
 Symbol PIN = PORTA.4         
 
 TRISA = %00000000
 PORTA = %00000000
 
 TRISB = %00000000
 PORTB = %00000000
 
 TRISC = %00000000
 PORTC = %00000000
 
'-----------------------------------------------------

 Thema:                       
 Sound PIN, [50,60,70,20,85,120,83,40,70,20,50,20,70,20,90,120,90,20,98,160]   
 DelayMS 2000                 
 For LOOP = 128 To 255       
  Sound PIN, [LOOP,2]        
                             
 Next                        
                             
 DelayMS 2000                
 Sound PIN, [43,80,63,20,77,20,71,80,51,20,_                                   
            90,20,85,140,77,20,80,20,85,20,_
            90,20,80,20,85,60,90,60,92,60,87,_
            60,96,70,0,10,96,10,0,10,96,10,0,_
            10,96,30,0,10,92,30,0,10,87,30,0,_
            10,96,40,0,20,63,10,0,10,63,10,0,_
            10,63,10,0,10,63,20]

 DelayMS 6000                
 
 GoTo Thema                  
 
 End
Прикрепления: Melodiya.bas (2.6 Kb) · Melodiya.hex (2.2 Kb)
DAlexV Дата: Пн, 11.11.2019, 09:09  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 657
Репутация: 27   ±
Замечания:   ±
На сайте с 13.05.2008

Статус: Offline

Цитата 555serg ()
Symbol PIN = PORTA.4
  555serg, насколько мне не изменяет память (с Пиками не общаюсь уже давно) пин А4 имеет открытый коллектор (нет подтяжки к питанию) Советую сменить ногу для вывода звука. Должно помочь. Или внешний резистор к питанию. Удачи  wink


Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
555serg Дата: Пн, 11.11.2019, 11:40  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Спасибо что попытались помочь.
На плате макетки с камнем 16F876A на которой решил проверить данную прогу, стоит клемник к которому
ранее подключался датчик температуры DS18B20, к нему было удобно подключить транзисторный буфер
для динамика. Сейчас посмотрел внимательнее, там на этом порту RA.4 установлен резистор подтяжки
к + 5В. Моя вина, сразу не сказал об этом.))
Все же, пере подключился к RA.5 затем еще и к RA.3  программа не отрабатывает заданный функционал,
воспроизводится лишь белый шум как и раннее.
Напоминаю, что это всего лишь макетка с 16F876 камнем, который выступает в роли подопытного для данной неработающей программы.
Конечная цель заставить работать данный кусок кода для камня 16F676 который установлен на специально изготовленной для этих целей полноценной плате. Ранее то же не указал, что здесь для формирования
звука использован порт RC.0  Не работает, хоть ты тресни ))
Спасибо что откликнулись.
Коллеги у кого есть какие идеи ?
P.S DaLexV на какие камни пересели, если пиками не занимаетесь ?

Сообщение отредактировал 555serg - Пн, 11.11.2019, 11:47
ivan_fd Дата: Пн, 11.11.2019, 17:11  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

У меня программа работает. Немного подправил под свой компилятор. У Вас наверное версия старая. И подцепил резистор с вывода RA4 к плюсу питания.
Попробуйте прошить мой код в 16F876 - кварц 4 МГц.
Прикрепления: 9287788.hex (2.2 Kb)
dimvad Дата: Пн, 11.11.2019, 17:13  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 79
Репутация: 54   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

В протеусе все работает на 676 камне. Слово Loop зарезервировано компилятором, может из-за этого?
Прикрепления: Melodiya.rar (28.2 Kb)
555serg Дата: Вт, 12.11.2019, 11:54  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Спасибо что нашли на меня время ))
ivan_fd прошил вашим hex файлом макетку на 876 камне, выход RA.4 подтяжка к +5В через резистор 4К7.
Не работает как надо  - ***здесь была нецензурная лексика*** )).
-----
dimvad взял ваш hex файл из папки Melodiya прошил им изготовленную специально плату на камне 676,
выход RC.0 - о чудо, все работает как надо!! Получается всему виной, яко бы зарезервированное компилятором имя Loop, если что, где список зарезервированных имен можно посмотреть, а то получается
простейшая прога, будешь сохнуть над ней и не поймешь почему не работает. И почему Протон компилятор
не выдал никакого сообщения об этой ошибке, странно как то. Если что у меня Proton IDE version 2.0.1.0
Proton BASIC Compiler   Load version 3.5.2.6   Compiler version 3.5.2.6  скачивал с этого сайта  - может в этом причина ?
-----
ivan_fd возможно вы проверяли в Протеусе, на реальном камне не заработало. Затем в качестве эксперимента, взял эту же прогу но с измененным именем Loop (т. е. программу от dimvlad) прошил 876,  RA.4,
подтяжка есть - не работает, щелчки и белый шум только. Далее проверил работу на выходах RA.3 и RA.5 но уже без подтяжки к питанию - не работает. Далее для чистоты эксперимента, переконфигурировал  выход на RC.0 - и о чудо, все заработало. Как вам такое ? Получается PORT.A в 876 камне уже не двунаправленный порт выхода ? Или  я по ходу тормоз ? Радует что на 676 камне заработало, буду ваять дальше свою прогу.
-----
Если есть мысли у кого по поводу PORT.А  876 камня, выскажитесь, а то как то стремно стало, в самый ответственный момент напорешься на такой вот конфуз, хотелось бы разобраться. Пока ожидал помощи, получил все же звук, но это тупо изменениями уровня на выводе контроллера в цикле, плюс плавающее количество повторений в этом же цикле, а как же современный прогресс и высоко уровневые языки программирования ? )))
Спасибо всем за помощь!

Сообщение отредактировал 555serg - Вт, 12.11.2019, 12:07
ivan_fd Дата: Вт, 12.11.2019, 13:09  |                                                                                                                Сообщение # 10
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Мой компилятор ругается на Loop. В файле помощи о нем все написано Do..Loop.
Цитата 555serg ()
и о чудо, все заработало. Как вам такое ?
 

Никакого чуда здесь нету. Порт А у Вас не работает, потому, что на нем висят аналоговые входа. Посмотрите на регистр ADCON1.
dimvad Дата: Вт, 12.11.2019, 16:10  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 79
Репутация: 54   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

На 876 на выводе RA.0 тоже работает без всяких проблем. У Вас какой-то совсем дремучий компилятор.
3.5.2.6 помнится глюковатый был.
Прикрепления: 7461690.hex (2.2 Kb)
ЯНДЕКС Дата: 12.11.2019
555serg Дата: Вт, 12.11.2019, 16:23  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Принял во внимание регистр ADCON1, установил с его помощью все выводы PORT.A цифровыми
каналами ввода / вывода.  Вывод PORTA.3 на камне 876 заработал как надо. Ура !))
Ну как так то, в описании на команду SOUND сказано :
Команда Sound генерирует тон и/или белый шум на указанном выводе. Вывод автоматически становится
выходом.
Автоматически, а не ручками. Черным по белому написано, я и не трогал этот регистр. Хотя везде где в
камнях ест модуль АЦП, то на это по ходу стоит обращать внимание на данный регистр.
По поводу версии компилятора, скачивал давно, видно глючная немного, если скачаю новую, как она/он станет, нормально ли все будет? В общем надо поновее ставить.
Всем огромное спасибо, а то прям руки опускаться начали, элементарная программа, а не работает.

Сообщение отредактировал 555serg - Вт, 12.11.2019, 16:26
ivan_fd Дата: Вт, 12.11.2019, 16:35  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Специалист
Сообщений: 894
Репутация: 124   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата 555serg ()
Ну как так то, в описании на команду SOUND сказано :Команда Sound генерирует тон и/или белый шум на указанном выводе. Вывод автоматически становится
выходом.

Он становится выходом, а не цифровым портом ввода вывода.

Сообщение отредактировал ivan_fd - Вт, 12.11.2019, 16:36
555serg Дата: Вт, 12.11.2019, 17:40  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Пытаюсь разобраться
Сообщений: 41
Репутация: 0   ±
Замечания:   ±
На сайте с 12.12.2011

Статус: Offline

Я конечно понимаю, что уже придираюсь))), он стал не цифровым, но уже выходом, если не цифровым,
то получается что аналоговым выходом.)))  Но в этой линейки нет ЦАП, ну так ведь по логике ?
-----
Все равно большущее спасибо, что помогли расставить все по местам !
Какую версию компилятора, из того что здесь есть на этом сайте, посоветуете установить вместо действующей, и это можно сделать поверх старой, или старую удалить вначале, предварительно сохранив папку с ранее написанными программами ? Или ткните носом, где почитать об этом можно ?
dimvad Дата: Вт, 12.11.2019, 18:06  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 79
Репутация: 54   ±
Замечания:   ±
На сайте с 20.07.2012

Статус: Offline

Самый дубовый это 3.5.2.7. , но в нем еще нет всяких новых полезностей. Сейчас стоит последний
3.7.3.1, но он глюченный. Например модуль ССР2 в режиме ШИМ перестал работать на 876 и 252.
Качайте все с родного сайта протона, а витамины здесь найдете.
Форум Picbasic.ru » Скорая помощь начинающим » Помощь в вопросах программирования » Вспомним звуки DANDY (Команда SOUND)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: