BASCOM AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

:)) Вообще переходы по Goto не так страшны, как ими пугают. Наоборот, самая простая и логичная команда для компилятора. Только одна опасность - нужно быть очень внимательным, чтобы не "упрыгать" куда-нибудь не туда. Так запросто по невнимательности, перепрыгиваются важные и нужные участки кода. Ищи потом проблему... :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: BASCOM AVR в вопросах и ответах

Сообщение amv2000 »

edm2007 писал(а):Так запросто по невнимательности, перепрыгиваются важные и нужные участки кода. Ищи потом проблему... :)

Ну я пока только лишку напрыгал :)))
Реклама
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: BASCOM AVR в вопросах и ответах

Сообщение amv2000 »

А еще вопрос, используем таймер 0 для индикации, таймер 1 для ШИМ и прерывания Int1, Int0 энкодер и кнопки. Не будет это всё друг другу мешать, в частности индикации?
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Не должно, если настроить частоту таймер0 кратную int1, таймер1, надо полагать, будет привязан к int1? Индикацию и кнопки можно запихать в таймер0, а энкодер int0 надо смотреть по ходу уже.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: BASCOM AVR в вопросах и ответах

Сообщение amv2000 »

zero648 писал(а):настроить частоту таймер0 кратную int1

Поясните пожалуйста, как можно настроить частоту int1 это же прерывание, могу нажать сейчас к примеру на кнопку, могу через час....
Реклама
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

amv2000 писал(а):Не будет это всё друг другу мешать, в частности индикации?


Все зависит от того, сколько будет длиться обработка других прерываний. У меня спокойно работает и динамическая индикация, и опрос энкодера на прерывании, и кнопка тоже. Обработку делайте шустрее, и все будет в порядке.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Реклама
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

amv2000 писал(а):Поясните пожалуйста, как можно настроить частоту int1 это же прерывание, могу нажать сейчас к примеру на кнопку, могу через час....

Т.е. int1 не для шим? если нет, тогда можно произвольно
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

В смысле, INT1 для ШИМ?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Чет, я не понял, че к чему относится:
таймер1 - шим,
int1 - энкодер,
int0 - кнопки.
Так, чтоли?
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

Ну например так. Я просто понять не могу, какое отношение прерывание INT может иметь к ШИМ. :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

edm2007 писал(а):В смысле, INT1 для ШИМ?

Я понял, что для управления двигателем с энкодером на 220V :facepalm:
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение edm2007 »

А, в смысле энкодер на валу двигателя, внешнее прерывание щупает обороты и рулит ШИМом (которая, в свою очередь, управляет двигателем)? :)
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: BASCOM AVR в вопросах и ответах

Сообщение amv2000 »

На Таймер 0 заведена LED индикация
Таймер 1 настроен на ШИМ
Энкодер попозже приделаю опрос через прерывание int1 или int 0

Код: Выделить всё

$regfile = "m32def.dat"                                     ' тип МК
$crystal = 16000000                                         ' выбор кристала для расчета задержек

' Аппаратный стек
$hwstack = 64                                               ' Описывает количество байт, отведенных для аппаратного стека. Когда вы используете команды CALL или GOSUB в стеке запоминаются по два байта. Когда вы используете две команды GOSUB, в стеке запоминаются 4 байта. Некоторые из инструкций также используют стек. При использовании прерываний в стеке сохраняется 32 байта.
' Программный стек
$swstack = 64                                               ' Описывает размер программного стека. Каждая локальная переменная использует 2 байта. Каждая переменная, используемая в подпрограмме, также использует 2 байта. Если вы использовали 10 переменных в подпрограмме и 3 параметра было передано в подпрограмму, то вам необходимо: 13 * 2 = 26 байт
' Размер фрейма
$framesize = 64                                             ' Описывает размер фрейма. Каждая локальная переменная запоминается в области памяти, которая называется 'фрейм'. Когда вы имеете 2 локальных переменных и символьную переменную длиной 10 символов, необходим фрейм размером (2*2) + 11 = 15 байт
'*******************************************************************************
'                               Конфигурация
'*******************************************************************************

'---------- [Конфигурация прерываний] ----------
Config Timer0 = Timer , Prescale = 256                      ' конфигурируем таймер индикации
On Ovf0 Led_indikator                                       ' метка на прерывание индикации

'---------- [конфигурация АЦП] ----------
Config Adc = Single , Prescaler = Auto , Reference = Aref   ' настраиваем АЦП в режим единичного измерения, автоматическое деление частоты кварца,
                                                             
'Admux = &B00011111                                          ' внешняя опора АЦП со входа AREF, внутренняя выключена

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Config Pind.4 = Output : Set Portd.4                        ' конфигурация порта D4, D5 (ШИМ)
Config Pind.5 = Output : Set Portd.5                        ' с подкл подтяг резисторов pul-up
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Чем будет управлять программа?
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

Re: BASCOM AVR в вопросах и ответах

Сообщение amv2000 »

Программа управления блоком питания с выводом текущих показаний U,I на LED, вся служебная информация выводится на ЖК (установка, настройка БП и пр.) А дальше как хватит фантазии и ума.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение Gordon Shumway »

Доброго времени суток всем ! :)

Вот тут развел обсуждение, но пока картинка никак не складывается...

Нужно сотворить диммер для настольной лампы. Включалка/выключалка получилась, а вот с регулировкой яркости никак.
Подсказывали насчет синхронизации с частотой сети, но никак не соображу, как это сделать со стороны Баскома.
Сейчас программка написана для Tiny13, задействован аппаратный шим. Светодиод на выходе отлично включается/выключается и показывает, что яркость регулируется. А вот с лампочкой накаливания никак...

Натолкните, плз, на путь !

Спасибо !

UPD: Яркость всё-таки регулируется на лампе, но на уровнях кроме максимального лампа начинает часто моргать. Но видно, что сам уровень яркости меняется.
С уважением,
Алексей.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Лампа включаестся через тиристор или семистор?
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Все, понял, симистор
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

Re: BASCOM AVR в вопросах и ответах

Сообщение Gordon Shumway »

zero648 писал(а):Лампа включаестся через тиристор или семистор?


Через классическую схему с гальванической развязкой "Оптотиристор moc3041 + триак bt139-600"

triac-moc3041.GIF
(5.59 КБ) 287 скачиваний
С уважением,
Алексей.
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: BASCOM AVR в вопросах и ответах

Сообщение zero648 »

Кстати, у тебя MOC3061 с zero-cross, а надо без него, например moc3052
Ответить

Вернуться в «AVR»