BASCOM AVR в вопросах и ответах
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- Реклама
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):Так запросто по невнимательности, перепрыгиваются важные и нужные участки кода. Ищи потом проблему...
Ну я пока только лишку напрыгал
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
А еще вопрос, используем таймер 0 для индикации, таймер 1 для ШИМ и прерывания Int1, Int0 энкодер и кнопки. Не будет это всё друг другу мешать, в частности индикации?
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Не должно, если настроить частоту таймер0 кратную int1, таймер1, надо полагать, будет привязан к int1? Индикацию и кнопки можно запихать в таймер0, а энкодер int0 надо смотреть по ходу уже.
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
zero648 писал(а):настроить частоту таймер0 кратную int1
Поясните пожалуйста, как можно настроить частоту int1 это же прерывание, могу нажать сейчас к примеру на кнопку, могу через час....
- Реклама
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):Не будет это всё друг другу мешать, в частности индикации?
Все зависит от того, сколько будет длиться обработка других прерываний. У меня спокойно работает и динамическая индикация, и опрос энкодера на прерывании, и кнопка тоже. Обработку делайте шустрее, и все будет в порядке.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
amv2000 писал(а):Поясните пожалуйста, как можно настроить частоту int1 это же прерывание, могу нажать сейчас к примеру на кнопку, могу через час....
Т.е. int1 не для шим? если нет, тогда можно произвольно
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
В смысле, INT1 для ШИМ?
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Чет, я не понял, че к чему относится:
таймер1 - шим,
int1 - энкодер,
int0 - кнопки.
Так, чтоли?
таймер1 - шим,
int1 - энкодер,
int0 - кнопки.
Так, чтоли?
- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Ну например так. Я просто понять не могу, какое отношение прерывание INT может иметь к ШИМ. 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
edm2007 писал(а):В смысле, INT1 для ШИМ?
Я понял, что для управления двигателем с энкодером на 220V

- edm2007
- Поставщик валерьянки для Кота
- Сообщения: 2255
- Зарегистрирован: Вт апр 21, 2009 22:24:10
- Откуда: Иркутск
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
А, в смысле энкодер на валу двигателя, внешнее прерывание щупает обороты и рулит ШИМом (которая, в свою очередь, управляет двигателем)? 
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
На Таймер 0 заведена LED индикация
Таймер 1 настроен на ШИМ
Энкодер попозже приделаю опрос через прерывание int1 или int 0
Таймер 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 в вопросах и ответах
Чем будет управлять программа?
- amv2000
- Опытный кот
- Сообщения: 717
- Зарегистрирован: Вт апр 26, 2011 13:58:36
- Откуда: Ростовская область
Re: BASCOM AVR в вопросах и ответах
Программа управления блоком питания с выводом текущих показаний U,I на LED, вся служебная информация выводится на ЖК (установка, настройка БП и пр.) А дальше как хватит фантазии и ума.
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
Доброго времени суток всем ! 
Вот тут развел обсуждение, но пока картинка никак не складывается...
Нужно сотворить диммер для настольной лампы. Включалка/выключалка получилась, а вот с регулировкой яркости никак.
Подсказывали насчет синхронизации с частотой сети, но никак не соображу, как это сделать со стороны Баскома.
Сейчас программка написана для Tiny13, задействован аппаратный шим. Светодиод на выходе отлично включается/выключается и показывает, что яркость регулируется. А вот с лампочкой накаливания никак...
Натолкните, плз, на путь !
Спасибо !
UPD: Яркость всё-таки регулируется на лампе, но на уровнях кроме максимального лампа начинает часто моргать. Но видно, что сам уровень яркости меняется.
Вот тут развел обсуждение, но пока картинка никак не складывается...
Нужно сотворить диммер для настольной лампы. Включалка/выключалка получилась, а вот с регулировкой яркости никак.
Подсказывали насчет синхронизации с частотой сети, но никак не соображу, как это сделать со стороны Баскома.
Сейчас программка написана для Tiny13, задействован аппаратный шим. Светодиод на выходе отлично включается/выключается и показывает, что яркость регулируется. А вот с лампочкой накаливания никак...
Натолкните, плз, на путь !
Спасибо !
UPD: Яркость всё-таки регулируется на лампе, но на уровнях кроме максимального лампа начинает часто моргать. Но видно, что сам уровень яркости меняется.
С уважением,
Алексей.
Алексей.
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Лампа включаестся через тиристор или семистор?
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Все, понял, симистор
- Gordon Shumway
- Мучитель микросхем
- Сообщения: 485
- Зарегистрирован: Пн авг 20, 2007 21:35:45
- Откуда: Мытищи, Московская область
- Контактная информация:
Re: BASCOM AVR в вопросах и ответах
zero648 писал(а):Лампа включаестся через тиристор или семистор?
Через классическую схему с гальванической развязкой "Оптотиристор moc3041 + триак bt139-600"
С уважением,
Алексей.
Алексей.
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: BASCOM AVR в вопросах и ответах
Кстати, у тебя MOC3061 с zero-cross, а надо без него, например moc3052


