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

Обсуждаем контроллеры компании Atmel.
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

Доброго всем времени суток. Извините за а вторжение и наверное за глупый вопрос, ткните носом или скиньте на почту описание команд на русском (ksv.iv@yandex.ru), как то видел всё в одном файле, а найти не могу. Несколько дней сижу, пытаюсь нарыть инфу и упорядочить для дальнейшей работы. Решил перейти на BASCOM, пишу проги в ФЛОВ КОДе, для небольших проектов нормально, но есть ограничения и вес прошивок получается не малый. На бейсике раньше писал , правде ещё на SPECTRUM, а за каждым оператором лазить в инет или по разным описаниям, время не напасёшься. Сильно не ругайте, я понимаю, чтоб что то написать, нужно потрудится.
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

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

ksv68 писал(а):ткните носом или скиньте на почту описание команд на русском.


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

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

Сообщение edm2007 »

Декада это хорошо для начала, да. Касаемо команд, так тут у баскома шикарная справка. Да, на английском, так и документация на МК в оригинале тоже не на русском. Так что лучше бы руководствоваться оригиналом, слишком уж часто встречаются ошибки в переводах. Тем более что там все более чем понятно.

А если по вопросу, то есть в сети перевод мануала к BASCOM8051, там каждая команда переведена с примерами. Но с AVR довольно много различий (хоть и для освоения тоже пойдет). Еще на форуме баскома были попытки перевести справку, но что-то все сошло на нет...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

Спасибо за столь оперативный ответ, BASCOM8051 я нашёл, там разница в командах. Буду пробовать. Язык я всё что то выбираю не из популярных :))
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

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

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

Сообщение zero648 »

dimon-ru-80 писал(а):Уважаемые коты помогите кодом организовать регулировку яркости в часах . Контроллер Atmega8 тактируется от внутреннего генератора 8 мГц.
Хочется по переполнению TIMER0 выполнять динамическую индикацию, а по совпадению того же таймера гасить порт, не могу осилить код

Если другие таймеры планируете занять чем-то другим, то можно делать динамику с регулировкой яркости и на одном прерывании таймера, для этого нужно аппаратный прескллер сделать меньше, например 1:8, и добавить в обработчик программный прескаллер, вот этим программный прескаллером и регулируется яркость.
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

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

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

Сообщение edm2007 »

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

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

Сообщение zero648 »

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

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

Сообщение edm2007 »

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

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

Сообщение zero648 »

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

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

Сообщение edm2007 »

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

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

Сообщение zero648 »

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

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

Сообщение edm2007 »

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

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

Сообщение zero648 »

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

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

Сообщение edm2007 »

В ШИМ частота неизменна. Предлагая менять задержку по-сути и предлагалось изменять частоту обновления индикации.
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

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

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

Сообщение edm2007 »

Когда порт настроен на вход (DDRX = 0), регистр PORT отвечает за подтяжку. В баскоме так:

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

Config PORTB.1 = Input   ' вывод PB1 - вход
PORTB.1 = 1                   ' включаем внутренний подтягивающий резистор


Можно так:

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

Set PORTB.1                    ' включаем внутренний подтягивающий резистор 


Оба варианта равнозначны. Можно записью в регистры наглядно:

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

DDRB  = &B00000000        ' весь порт на вход
PORTB = &B11001100        ' подтяжка у выводов PB7, PB6, PB3, PB2
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
ksv68
Открыл глаза
Сообщения: 43
Зарегистрирован: Сб апр 05, 2014 20:41:29
Откуда: Иваново

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

Сообщение ksv68 »

Подскажите, а можно два сравнения сделать по функции ИЛИ , И ,и как правильно написать
If Keynim = 0 and If Key = 0 then Return пример
Аватара пользователя
Gordon Shumway
Мучитель микросхем
Сообщения: 485
Зарегистрирован: Пн авг 20, 2007 21:35:45
Откуда: Мытищи, Московская область
Контактная информация:

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

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

ksv68 писал(а): как правильно написать
If Keynim = 0 and If Key = 0 then Return пример


Второй IF убрать нужно.

Но я делал так:

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

if keymin = 0 then
  if key = 0 then return
end if


Не претендую на оптимальность, но работает.
С уважением,
Алексей.
Ответить

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