Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт янв 27, 2011 01:30:06
Поставщик валерьянки для Кота
Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15 Сообщений: 2106 Откуда: Старые Васюки
Рейтинг сообщения:0
Gordon Shumway писал(а):
Вы как-нибудь решили проблему с занятием линии ?
Да, решил. Тут совершенно правильно советовали отключать таймер сразу по окончании DTMF посылки. Жаль, что Баском сам этого не делает, хотя по логике должен.
Gordon Shumway писал(а):
Я ставил разделительный конденсатор, чтобы транзистор не был открыт постоянно, но через него вообще не пищит...
Так тоже можно, но тогда на базу транзистору надо подавать смещение...
Gordon Shumway писал(а):
Можно увидеть ваш выходной каскад DTMF ?
Он примитивнейший. На базу транзистора резистор 9,1 К с ноги Portd.5 (у меня М8515), коллектор к (+) линии после моста, эмиттер через резистор 200 Ом на землю. Минус линии, естественно, туда же. А я вот встречный вопрос хотел задать: Ваше устройство "ловит" посылки вызова (звонки) с линии? Если да, то как сделан этот узел?
aleksandr-zh писал(а):
это как? как вы изменили генерируемые шишом частоты? вочень-вочень интересно
Да проще не придумать – поковырялся во встроенной библиотеке Кстати, это в любом случае не вредно, т.к. там заложено много сюрпризов, например команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать А ещё эту команду можно использовать для генерации точных однотональных частот, чего от SOUND не дождёшься.
_________________ Даже остановленные часы два раза в сутки показывают правильное время.
это как? как вы изменили генерируемые шишом частоты? вочень-вочень интересно
Да проще не придумать – поковырялся во встроенной библиотеке
А как это сделать? что-то я не понял... в смысле, ассмом?
Секретный кот писал(а):
Кстати, это в любом случае не вредно, т.к. там заложено много сюрпризов, например команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать .
о как а что выдает? чем больше знаю Баском, тем меньше нравится (да и изначально не нравился - по личным причинам)
Он примитивнейший. На базу транзистора резистор 9,1 К с ноги Portd.5 (у меня М8515), коллектор к (+) линии после моста, эмиттер через резистор 200 Ом на землю. Минус линии, естественно, туда же. А я вот встречный вопрос хотел задать: Ваше устройство "ловит" посылки вызова (звонки) с линии? Если да, то как сделан этот узел?
Я вспомнил мои любимые АОНы на Z80, которые когда-то клепал налево и направо ! К цепи вызова добавил транзистор, который при входящем вызове землит int0. И добавил waitms 1000, чтобы не сразу трубку хватал. Работает !
Вложения:
Комментарий к файлу: Схема вызова. vy.GIF [2.95 KiB]
Скачиваний: 569
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Чт янв 27, 2011 13:29:37
Поставщик валерьянки для Кота
Карма: 4
Рейтинг сообщений: 26
Зарегистрирован: Ср сен 17, 2008 14:32:15 Сообщений: 2106 Откуда: Старые Васюки
Рейтинг сообщения:0
aleksandr-zh писал(а):
Секретный кот писал(а):
Да проще не придумать – поковырялся во встроенной библиотеке
А как это сделать? что-то я не понял... в смысле, ассмом?
Ну собственно в асм влезать не требуется, достаточно пересчитать таблицу частот, которая там лежит, к тому же с неплохими комментариями.
aleksandr-zh писал(а):
Секретный кот писал(а):
команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать
о как а что выдает?
Три варианта на выбор: тишина, непрерывный тон отфонарной частоты, зависание МК (также возможны их сочетания ) А всё потому, что для команды DTMFOUT формируемая посылка передаётся не символами, а их ASCII-кодами (это видно из библиотеки). Т.е. если нам нужна звёздочка, надо делать DTMFOUT ":", а решётка - DTMFOUT ";".
aleksandr-zh писал(а):
чем больше знаю Баском, тем меньше нравится (да и изначально не нравился - по личным причинам)
У меня всё с точностью до наоборот. После ручного отлавливания глюков в асме тут просто отдыхаешь. Да и на готовые библиотеки не надо тратить драгоценное время.
Gordon Shumway писал(а):
Я вспомнил мои любимые АОНы на Z80, которые когда-то клепал налево и направо !
Спасибо. У меня в конструкциях на Z80/ВВ55 эта цепочка тоже успешно работала (даже без транзистора), а сейчас почему-то глючит – на каждую вызывную посылку даёт один короткий пик в начале и потом - тишина. В выходные попробую всё же с оптроном поэкспериментировать.
Gordon Shumway писал(а):
добавил waitms 1000, чтобы не сразу трубку хватал. Работает !
А мне бы вот надо брать трубку после заданного звонка. Для этого требуется чёткий подсчёт вызывных посылок...
_________________ Даже остановленные часы два раза в сутки показывают правильное время.
Не получается сделать 0 на portb.3 (tiny2313) после посылки dtmf предложенным выше методом ! Все равно единица иногда вылезает. Не подскажете поточнее ? У меня сейчас так :
Я сделал перевод интерфейса Баском на русский, Марк уже сделал в проф версии. Но в демо еще не обновил. Также делаю перевод справочной системы. Вчера отправил часть данных ему, и попросил сверстать в chm файл справки. Пока молчит
aleksandr-zh, Вы большой молодец. Дело нужное и полезное. Все дождаться не могу демки обновленной. А на самом деле в демо-версии кроме ограничений на размер кода еще есть какие-то "лишения"?
_________________ "Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Заголовок сообщения: Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс янв 30, 2011 19:26:19
Вымогатель припоя
Зарегистрирован: Вт сен 15, 2009 16:23:06 Сообщений: 693 Откуда: Москва
Рейтинг сообщения:0
Доброе время суток.
Народ подскажите в чем может быть проблема. Делал Лампу настроения, но с изменениями. Разница в том что цвета у меня заранее записаны и выбераются из таблицы случайным образом. И ШИМ уменя програмный. Проблема в том что если я вставляю после строки
Код:
'удержание цвета
такой код
Код:
DO Temp5=RND(11) Loop until Temp5>5 AND Temp5<11 Wait Temp5
то светодиод начинает переодически мегать между переходами цветов.
Полный код программы.
Код:
$regfile = "attiny85.dat " $crystal = 8000000
'тикущий цвет Dim Red As Single Dim Green As Single Dim Blue As Single
'следующий цвет Dim Nextred As Byte Dim Nextgreen As Byte Dim Nextblue As Byte
'приращение шага Dim Delta_red As Single Dim Delta_green As Single Dim Delta_blue As Single
'временные переменые Dim Temp1 As Integer Dim Temp2 As Long Dim Temp5 As Byte Dim I As Byte Dim Tik As Byte Dim Ledr As Byte Dim Ledg As Byte Dim Ledb As Byte
Temp1 = Rnd(110) Restore Color For I = 0 To Temp1 Read Temp2 Next
Nextblue = Temp2 And 255 Temp2 = Temp2 / 256 Nextgreen = Temp2 And 255 Temp2 = Temp2 / 256 Nextred = Temp2 And 255
'вычесляем прибавку для перехода к новому цвету за 255 шагов Delta_red = Nextred - Red Delta_red = Delta_red / 255 Delta_green = Nextgreen - Green Delta_green = Delta_green / 255 Delta_blue = Nextblue - Blue Delta_blue = Delta_blue / 255
For I = 0 To 255 'вывод цвета за 255 шагов Red = Red + Delta_red Green = Green + Delta_green Blue = Blue + Delta_blue
Pwms: Incr Tik If Tik = 255 Then Tik = 0 Portb.0 = 0 Portb.1 = 0 Portb.2 = 0 End If If Tik > Ledr Then Portb.0 = 1 If Tik > Ledg Then Portb.1 = 1 If Tik > Ledb Then Portb.2 = 1 Return
я не знаю, что это за конструкция, но тоже делал Диммер, и при каких-то действиях лампа мигала Так как ШИМ у Вас программный, то из-за высокой длительности операций происходит прерывание сигнала после перехода через ноль синусоиды напряжения Мигает
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения