BASCOM AVR в вопросах и ответах
Re: BASCOM AVR в вопросах и ответах
доброе время суток.
Подскажите как управлять аппаратными ШИМ в Баскоме.
Надо трехканальный шим на меге8, а как делать в непойму.
в какойто проге нашол но что значат некоторые пункты не понимаю.
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
Pwm1a = 254
Pwm1b = 128
Ocr2 = 15
Подскажите как управлять аппаратными ШИМ в Баскоме.
Надо трехканальный шим на меге8, а как делать в непойму.
в какойто проге нашол но что значат некоторые пункты не понимаю.
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
Pwm1a = 254
Pwm1b = 128
Ocr2 = 15
Только абсолютная пустота бездны принесёт мне покой.
- Реклама
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Gordon Shumway писал(а):Вы как-нибудь решили проблему с занятием линии ?
Да, решил. Тут совершенно правильно советовали отключать таймер сразу по окончании DTMF посылки. Жаль, что Баском сам этого не делает, хотя по логике должен.
Gordon Shumway писал(а):Я ставил разделительный конденсатор, чтобы транзистор не был открыт постоянно, но через него вообще не пищит...
Так тоже можно, но тогда на базу транзистору надо подавать смещение...
Gordon Shumway писал(а):Можно увидеть ваш выходной каскад DTMF ?
Он примитивнейший. На базу транзистора резистор 9,1 К с ноги Portd.5 (у меня М8515), коллектор к (+) линии после моста, эмиттер через резистор 200 Ом на землю. Минус линии, естественно, туда же.
А я вот встречный вопрос хотел задать: Ваше устройство "ловит" посылки вызова (звонки) с линии? Если да, то как сделан этот узел?
aleksandr-zh писал(а):это как? как вы изменили генерируемые шишом частоты?
вочень-вочень интересно
Да проще не придумать – поковырялся во встроенной библиотеке
Кстати, это в любом случае не вредно, т.к. там заложено много сюрпризов, например команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать
А ещё эту команду можно использовать для генерации точных однотональных частот, чего от SOUND не дождёшься.
Даже остановленные часы два раза в сутки показывают правильное время.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
Секретный кот писал(а):aleksandr-zh писал(а):это как? как вы изменили генерируемые шишом частоты?
вочень-вочень интересно
Да проще не придумать – поковырялся во встроенной библиотеке
А как это сделать? что-то я не понял... в смысле, ассмом?
Секретный кот писал(а):Кстати, это в любом случае не вредно, т.к. там заложено много сюрпризов, например команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать
.
о как
чем больше знаю Баском, тем меньше нравится (да и изначально не нравился - по личным причинам)
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Секретный кот писал(а):Gordon Shumway писал(а):Можно увидеть ваш выходной каскад DTMF ?
Он примитивнейший. На базу транзистора резистор 9,1 К с ноги Portd.5 (у меня М8515), коллектор к (+) линии после моста, эмиттер через резистор 200 Ом на землю. Минус линии, естественно, туда же.
А я вот встречный вопрос хотел задать: Ваше устройство "ловит" посылки вызова (звонки) с линии? Если да, то как сделан этот узел?
Я вспомнил мои любимые АОНы на Z80, которые когда-то клепал налево и направо !
К цепи вызова добавил транзистор, который при входящем вызове землит int0. И добавил waitms 1000, чтобы не сразу трубку хватал. Работает !
- Вложения
-
- vy.GIF
- Схема вызова.
- (2.95 КБ) 570 скачиваний
С уважением,
Алексей.
Алексей.
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):Секретный кот писал(а):Да проще не придумать – поковырялся во встроенной библиотеке
А как это сделать? что-то я не понял... в смысле, ассмом?
Ну собственно в асм влезать не требуется, достаточно пересчитать таблицу частот, которая там лежит, к тому же с неплохими комментариями.
aleksandr-zh писал(а):Секретный кот писал(а):команда DTMFOUT "#" или DTMFOUT "*" даст совсем не тот результат, которого от неё можно было бы ждать
о кака что выдает?
Три варианта на выбор: тишина, непрерывный тон отфонарной частоты, зависание МК (также возможны их сочетания
А всё потому, что для команды DTMFOUT формируемая посылка передаётся не символами, а их ASCII-кодами (это видно из библиотеки). Т.е. если нам нужна звёздочка, надо делать DTMFOUT ":", а решётка - DTMFOUT ";".
aleksandr-zh писал(а):чем больше знаю Баском, тем меньше нравится (да и изначально не нравился - по личным причинам)
У меня всё с точностью до наоборот. После ручного отлавливания глюков в асме тут просто отдыхаешь. Да и на готовые библиотеки не надо тратить драгоценное время.
Gordon Shumway писал(а):Я вспомнил мои любимые АОНы на Z80, которые когда-то клепал налево и направо !
Спасибо. У меня в конструкциях на Z80/ВВ55 эта цепочка тоже успешно работала (даже без транзистора), а сейчас почему-то глючит – на каждую вызывную посылку даёт один короткий пик в начале и потом - тишина. В выходные попробую всё же с оптроном поэкспериментировать.
Gordon Shumway писал(а):добавил waitms 1000, чтобы не сразу трубку хватал. Работает !
А мне бы вот надо брать трубку после заданного звонка. Для этого требуется чёткий подсчёт вызывных посылок...
Даже остановленные часы два раза в сутки показывают правильное время.
- Реклама
Re: BASCOM AVR в вопросах и ответах
TRIOD писал(а):доброе время суток.
Подскажите как управлять аппаратными ШИМ в Баскоме.
Надо трехканальный шим на меге8, а как делать в непойму.
в какойто проге нашол но что значат некоторые пункты не понимаю.
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Async = Off , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
Pwm1a = 254
Pwm1b = 128
Ocr2 = 15
Вот сюда вписывайте необходимые значения ШИМ (0 - 255)
Код: Выделить всё
Pwm1a = 254
Pwm1b = 128
Ocr2 = 15
Это управление 3 каналами.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
Секретный кот писал(а):aleksandr-zh писал(а):Секретный кот писал(а):Да проще не придумать – поковырялся во встроенной библиотеке
А как это сделать? что-то я не понял... в смысле, ассмом?
Ну собственно в асм влезать не требуется, достаточно пересчитать таблицу частот, которая там лежит, к тому же с неплохими комментариями..
я про это и спрвшиваю: где лежит, чем открывать?
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):где лежит, чем открывать?
Файл mcs.lib, в папке библиотек Баскома, открывать чем угодно, например блокнотом
Даже остановленные часы два раза в сутки показывают правильное время.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
US! Прикольненько!
надо засмотреть и подумать!
СПАСИБО!
надо засмотреть и подумать!
СПАСИБО!
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Уважаемый Секретный кот !
Не получается сделать 0 на portb.3 (tiny2313) после посылки dtmf предложенным выше методом !
Все равно единица иногда вылезает.
Не подскажете поточнее ?
У меня сейчас так :
И еще... У меня в начале программы написано :
$regfile = "2313def.dat"
если пишу $regfile = "tiny2313.dat", то вообще пищать не хочет. Чем они отличаются ?
Не получается сделать 0 на portb.3 (tiny2313) после посылки dtmf предложенным выше методом !
Все равно единица иногда вылезает.
Не подскажете поточнее ?
У меня сейчас так :
Config Portb.3 = Output
Config Int0 = Low Level
On Int0 Pusk
11223:
Enable Interrupts
Enable Int0
Powerdown
Goto 11223
Pusk:
Disable Interrupts
Disable Int0
что-то важное...
Enable Interrupts
Enable Timer1
For Zze = 1 To I
Dtmfout Dig(zze) , 100
Waitms 100
Next Zze
Disable Timer1
Disable Interrupts
Portb.3 = 0
Что-то важное...
Return
И еще... У меня в начале программы написано :
$regfile = "2313def.dat"
если пишу $regfile = "tiny2313.dat", то вообще пищать не хочет. Чем они отличаются ?
С уважением,
Алексей.
Алексей.
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh писал(а):СПАСИБО!
Н З ЧТ!
Gordon Shumway писал(а):Не получается сделать 0 на portb.3 (tiny2313) после посылки dtmf предложенным выше методом !
Это потому, что после отправки посылки вы выключаете не таймер, а его прерывание. Попробуйте вместо обоих Disable вставить такую строчку:
Код: Выделить всё
Tccr1a=0Gordon Shumway писал(а):если пишу $regfile = "tiny2313.dat", то вообще пищать не хочет.
Неудивительно, т.к. такого файла вообще нет. По идее компилятор ругается, когда задаёшь несуществующее имя def-файла. Попробуйте ATtiny2313.dat.
Даже остановленные часы два раза в сутки показывают правильное время.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re:
Я сделал перевод интерфейса Баском на русский, Марк уже сделал в проф версии. Но в демо еще не обновил. Также делаю перевод справочной системы. Вчера отправил часть данных ему, и попросил сверстать в chm файл справки. Пока молчит
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
aleksandr-zh, Вы большой молодец. Дело нужное и полезное.
Все дождаться не могу демки обновленной. А на самом деле в демо-версии кроме ограничений на размер кода еще есть какие-то "лишения"?
Все дождаться не могу демки обновленной. А на самом деле в демо-версии кроме ограничений на размер кода еще есть какие-то "лишения"?"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Все дождаться не могу демки обновленной. А на самом деле в демо-версии кроме ограничений на размер кода еще есть какие-то "лишения"?
если хоть что-то зависило в этих вопросах от меня только...
Демку жду, Марк ответил, что сделает. И молчит уже с неделю...
Лишений больше никаких - со слов самого автора - Марка
мол, чтобы все видели, что может продукт.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Секретный кот писал(а):Gordon Shumway писал(а):Не получается сделать 0 на portb.3 (tiny2313) после посылки dtmf предложенным выше методом !
Это потому, что после отправки посылки вы выключаете не таймер, а его прерывание. Попробуйте вместо обоих Disable вставить такую строчку:Код: Выделить всё
Tccr1a=0
Работает ! Спасибо !!!!!!!
С уважением,
Алексей.
Алексей.
Re: BASCOM AVR в вопросах и ответах
Доброе время суток.
Народ подскажите в чем может быть проблема.
Делал Лампу настроения, но с изменениями.
Разница в том что цвета у меня заранее записаны и выбераются из таблицы случайным образом.
И ШИМ уменя програмный.
Проблема в том что если я вставляю после строки
такой код
то светодиод начинает переодически мегать между переходами цветов.
Полный код программы.
Народ подскажите в чем может быть проблема.
Делал Лампу настроения, но с изменениями.
Разница в том что цвета у меня заранее записаны и выбераются из таблицы случайным образом.
И ШИМ уменя програмный.
Проблема в том что если я вставляю после строки
Код: Выделить всё
'удержание цвета
такой код
Код: Выделить всё
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
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Timer0 = Timer , Prescale = 1
Enable Timer0
Enable Interrupts
On Timer0 Pwms
Start Timer0
Do
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
Temp5 = Fix(red)
Ledr = Temp5
Temp5 = Fix(green)
Ledg = Temp5
Temp5 = Fix(blue)
Ledb = Temp5
Waitms 15
Next
'удержание цвета
Wait 20
Loop
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
Color:
Data &HF08080& , &HFA8072& , &HE9967A& , &HFFA07A& , &HDC143C& , &HFF0000& , &HB22222& , &H8B0000&
Data &HFFC0CB& , &HFFB6C1& , &HFF69B4& , &HFF1493& , &HC71585& , &HDB7093& , &HFFA07A& , &HFF7F50&
Data &HFF6347& , &HFF4500& , &HFF8C00& , &HFFA500& , &HFFD700& , &HFFFF00& , &HFFFFE0& , &HFFFACD&
Data &HFAFAD2& , &HFFEFD5& , &HFFEFD5& , &HFFE4B5& , &HFFDAB9& , &HEEE8AA& , &HF0E68C& , &HBDB76B&
Data &HE6E6FA& , &HD8BFD8& , &HDDA0DD& , &HEE82EE& , &HDA70D6& , &HFF00FF& , &HBA55D3& , &H9370DB&
Data &H8A2BE2& , &H9400D3& , &H9932CC& , &H8B008B& , &H800080& , &H4B0082& , &H6A5ACD& , &H483D8B&
Data &HADFF2F& , &H7FFF00& , &H7CFC00& , &H00FF00& , &H32CD32& , &H98FB98& , &H90EE90& , &H00FA9A&
Data &H00FF7F& , &H3CB371& , &H2E8B57& , &H228B22& , &H008000& , &H006400& , &H9ACD32& , &H6B8E23&
Data &H808000& , &H556B2F& , &H66CDAA& , &H8FBC8F& , &H20B2AA& , &H008B8B& , &H008080& , &H00FFFF&
Data &HE0FFFF& , &HAFEEEE& , &H7FFFD4& , &H40E0D0& , &H48D1CC& , &H00CED1& , &H5F9EA0& , &H4682B4&
Data &HB0C4DE& , &HB0E0E6& , &H87CEEB& , &H87CEFA& , &H00BFFF& , &H1E90FF& , &H6495ED& , &H7B68EE&
Data &H4169E1& , &H0000FF& , &H0000CD& , &H00008B& , &H000080& , &H191970& , &HFFF8DC& , &HFFEBCD&
Data &HFFE4C4& , &HFFDEAD& , &HF5DEB3& , &HDEB887& , &HD2B48C& , &HBC8F8F& , &HF4A460& , &HDAA520&
Data &HB8860B& , &HCD853F& , &HD2691E& , &H8B4513& , &HA0522D& , &HA52A2A& , &H800000&Только абсолютная пустота бездны принесёт мне покой.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
я не знаю, что это за конструкция, но тоже делал Диммер,
и при каких-то действиях лампа мигала
Так как ШИМ у Вас программный, то из-за высокой длительности операций происходит прерывание сигнала после перехода через ноль синусоиды напряжения
Мигает
и при каких-то действиях лампа мигала
Так как ШИМ у Вас программный, то из-за высокой длительности операций происходит прерывание сигнала после перехода через ноль синусоиды напряжения
Мигает
Re: BASCOM AVR в вопросах и ответах
Я и с аппаратным шим пробывал тоже мигает.
Только абсолютная пустота бездны принесёт мне покой.
-
aleksandr-zh
- Сверлит текстолит когтями
- Сообщения: 1278
- Зарегистрирован: Пн июн 18, 2007 21:51:20
Re: BASCOM AVR в вопросах и ответах
да какая разница
время выполнения операций длиннее цикла таймера
время выполнения операций длиннее цикла таймера
Re: BASCOM AVR в вопросах и ответах
Да, но если просто написать Wait 40 то не чего не мигает. А время выполнения этой операции в 2 раза больше.
Только абсолютная пустота бездны принесёт мне покой.


