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

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

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

Сообщение edm2007 »

Уф... :) Приходите Вы в магазин, и покупаете восьмиразрядный индикатор, у которого ноги уже внутри разведены под динамическую индикацию. И в итоге на белый свет выведены 8 ног сегментов и 8 ног разрядов. Ножовкой же распилите индикатор, да? Чтобы развести его под свою схему. :)

А на деле-то: восемь сегментов, восемь разрядов, восемь ног у каждого регистра, восемь бит в байте... Прямо звезды складываются как надо, луна в тельце. :)) Один регистр управляет цифрами, второй регистр управляет разрядами... Я не знаю как еще сказать. *код показывать не буду*.

P.S. Вообще интересно, а что это за монстр такой, в котором и восьмиразрядный семисегментник, и дисплей от сотика, и кнопки да еще и энкодер до кучи. :))

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

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

Сообщение amv2000 »

Да ни какого монстра, это лабораторник БП на одном индикаторе текущее напряжение, на другом ток. На ЖК установки, пресеты возможно и как говорится по ходу будет видно... все это просто для души, размять лишний раз мозг, который и так долго был в покое. Просто у меня звезды чего то не складываются, то NOkia 3310 китаец графику не выводит(взял 1100,1202 попробую с ними) то динамическая индикация не заводится, вот и говорю чего то я упустил.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

amv2000 писал(а):это просто для души, размять лишний раз мозг


Так где разминка-то? Накорячить непонятно что, а потом жаловаться:

amv2000 писал(а):Просто у меня звезды чего то не складываются


Какие, к черту, звезды? Это что, ход такой? Если Вы нарисовали СВОЮ схему, так и пишите СВОЙ код. В чем проблема-то? Сама схема интересна в том плане, что пробегаются всего 4 разряда по сути (хоть и ценой одной дополнительной микросхемы). Я бы сделал так:

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

Number(1) = 1                                               ' на индикацию выводим 12345678
Number(2) = 2
Number(3) = 3
Number(4) = 4
Number(5) = 5
Number(6) = 6
Number(7) = 7
Number(8) = 8

........................................................

Refresh:                                                    ' прерывание таймера Т0

Incr Count : If Count > 4 Then Count = 1                    ' увеличиваем значение счетчика

Ledout = Lookup(count , Rank)                               ' забираем номер разряда
Shiftout 595data , 595clock , Ledout                        ' закидываем в регистр

Ledout = Lookup(number(count + 4) , Digits)                 ' забираем код цифры для ВТОРОГО индикатора
Shiftout 595data , 595clock , Ledout                        ' закидываем в регистр

Ledout = Lookup(number(count) , Digits)                     ' забираем код цифры для ПЕРВОГО индикатора
Shiftout 595data , 595clock , Ledout                        ' закидываем в регистр

Pulseout Portc , 2 , 10                                     ' защелкиваем данные (для 8МГц импульс 5мкс)

Return


Изображение

То Proteus виноват, то звезды не складываются. Сколько можно-то...
Вложения
amv2000_74HC595.rar
Исходный код, проект Proteus
(20.32 КБ) 263 скачивания
amv2000_795.png
(7.11 КБ) 1538 скачиваний
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

edm2007 писал(а):Какие, к черту, звезды? Это что, ход такой? Если Вы нарисовали СВОЮ схему, так и пишите СВОЙ код. В чем проблема-то?То Proteus виноват, то звезды не складываются. Сколько можно-то...

Да чем же это я так Вас разозлил :shock: ну про звезды я как бы в тему хотел и не удачно привел
edm2007 писал(а):восемь сегментов, восемь разрядов, восемь ног у каждого регистра, восемь бит в байте... Прямо звезды складываются как надо
А не для того, чтобы позлить так , что не серчайте извините за неудачное словосочетание. А Ваш код просто понравился поэтому его и привел, до конца не понял отсюда и дурные вопросы.
А в прочем правильно ругать надо, ибо расслабляемся а это не простительно. За помощь огромное человеческое спасибо, но вопросы они так и накатывают по мере углубления поэтому не бросайте нас :))
На 2 регистрах запустился, но уже вижу свои недочеты с таймером.

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

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

'*****************************************[Определение переменных и констант]************************************

Dim Count As Byte                                           ' переменная для работы с индикацией
Dim Ledout As Byte                                          ' переменная  для загрузки в регистры сдвига
Dim Number(8) As Byte                                       ' значения 6-ти разрядов
Dim H_flag(8) As Byte                                       ' флаги точек 6-ти разрядов
Dim Blink_count As Word                                     ' счетчик времени мигания
Dim Blink_flag(8) As Byte                                   ' флаги мигания разрядов

'***********************************************[Инициализация портов]*******************************************

Ddrc = &B11111111                                           'порт В на выход ' вывод SH_CP регистра (тактовые импульсы)

'*********************************************[Инициализация прерываний]*****************************************

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

Enable Interrupts                                           ' разрешаем прерывания
Enable Ovf0                                                 ' и для индикации в частности

'********************************************[Присвоение уникальных имен]****************************************

595clock Alias Portc.0 : 595data Alias Portc.1              ' выводы 74HC595

'*********************************************[Начало основной программы]****************************************

Number(1) = 1                                               ' на индикацию выводим -tESt-
Number(2) = 2
Number(3) = 3
Number(4) = 4
Number(5) = 5
Number(6) = 6
Number(7) = 7
Number(8) = 8
'----------

Do

Loop

'***********************************[Процедуры обработки подпрограмм и прерываний]*******************************

Refresh:                                                    ' прерывание таймера Т0
Incr Count : If Count > 8 Then Count = 1                    ' иначе (флаг не выставлен, либо счетчик < 200)
Ledout = Lookup(count , Rank)                               ' забираем в переменную номер разряда
Shiftout 595data , 595clock , Ledout , 1                    ' закидываем в регистр
'----------

Ledout = Lookup(number(count) , Digits)                     ' забираем в переменную код цифры
Shiftout 595data , 595clock , Ledout , 1                    ' закидываем в регистр

Pulseout Portc , 2 , 20                                     ' защелкиваем данные (для 8МГц импульс 5мкс)

Return


'******************************************************[DATA]****************************************************

Digits:                                                     ' цифры

Data &B11000000 , &B11111001 , &B10100100 , &B10110000 , &B10011001       ' 0 1 2 3 4
Data &B10010010 , &B10000010 , &B11011000 , &B10000000 , &B10010000       ' 5 6 7 8 9

'----------

Rank:                                                       ' разряды
Data &B00000000                                             ' выкл
Data &B00000001 , &B00000010 , &B00000100 , &B00001000      ' 1 2 3 4
Data &B00010000 , &B00100000 , &B01000000 , &B10000000      ' 5 6 7 8

'****************************************************************************************************************
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Интересно, а эта схема "протянет" 20 разрядов? И кто-нибудь пробовал подключить к этой схеме RC5? Давно есть задумка переделать на современную базу(часы - AT89C52, DS1302, 2 КР580ВА86 и 12 CD4056BF; термометр - AT89C2051 и 2 DS1820) вот эти часы(за качество извеняюсь, красные индикаторы яркие, а со вспышкой ничего не видно):
Изображение
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
edm2007
Поставщик валерьянки для Кота
Сообщения: 2255
Зарегистрирован: Вт апр 21, 2009 22:24:10
Откуда: Иркутск
Контактная информация:

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

Сообщение edm2007 »

amv2000 писал(а):Да чем же это я так Вас разозлил


Просто вечер вчера был насыщен разными "удивительными" вопросами. Вот и накопилась критическая масса. Не воспринимайте это на свой счет. :)

Да, все верно, для управления каждым разрядом в отдельности нужна высокая частота обновления. И это конечно не всегда устраивает. Иначе пока мы добежим до нужной цифры, она будет слишком долго выключена. И естественно появится мерцание. Это минус, да. Но зато мы используем всего два регистра.

Изображение

Ваш вариант интересен тем, что по сути своей это не один индикатор на 8 разрядов, а два по 4 разряда, работающие одновременно. И естественно им хватит гораздо меньшей частоты обновления. И это несомненно плюс. А минус в том, что нужно уже три регистра.

Изображение

'----------

max50, ну дешифраторы-то уже хорошо. Почему бы их и не использовать? :) Будет статика, а это вообще прекрасно. :solder:
Вложения
Ind_rank_anim.gif
Индикация с общими разрядами
(10.73 КБ) 1407 скачиваний
Ind_seg_anim.gif
Индикация с общими сегментами
(12.65 КБ) 1397 скачиваний
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

edm2007 писал(а):max50, ну дешифраторы-то уже хорошо. Почему бы их и не использовать? :) Будет статика, а это вообще прекрасно. :solder:

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

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

Сообщение edm2007 »

Так они есть, микрухи-то... И это под динамику код писать приходится, заморачиваясь. Например, для восьми разрядов нужна частота 500Гц, иначе мерцать все начинает. А это вызов прерывания каждые 2 мс. А тут изменил нужный разряд и все. Яркость не падает, обработка занимает совсем немного времени... Ну микрух будет много, это да. Если на каждый разряд ставить CD4056B, то это 4 ноги на разряд выйдет, для управления. Много... Впрочем, можно и 595 для статики привертеть. Да, так же будет много микрух, но ног всего 3 штуки уйдет. Так же их каскадом, удобно будет. Натолкали цифр при необходимости, защелкнули и все. А динамику на 20 разрядов это я не знаю...
"Слишком много людей ломаются, даже не подозревая о том, насколько близки к успеху они были в тот момент, когда упали духом". Томас Алва Эдисон
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

Сейчас занято 14 портов: 8 данные, 6 адреса. Если с динамикой как-то сталкивался, то со статикой, а тем более еще и через регистры, не приходилось. Вот и зацепился за динамику. Можете пример кода накидать для статики?
Того, кто не задумывается о далеких трудностях, ожидают близкие неприятности.
Аватара пользователя
amv2000
Опытный кот
Сообщения: 717
Зарегистрирован: Вт апр 26, 2011 13:58:36
Откуда: Ростовская область

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

Сообщение amv2000 »

Вложения
c5cd4c.jpg
(135.78 КБ) 2026 скачиваний
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

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

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

Сообщение amv2000 »

Здесь статика на Васике и регистрах http://avrproject.ru/publ/kak_podkljuch ... a/2-1-0-57
А вверху это как пример того, что можно и на 20 разрядов....
Аватара пользователя
max50
Мучитель микросхем
Сообщения: 497
Зарегистрирован: Ср дек 10, 2008 21:24:28
Откуда: Алтайский край, Барнаул

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

Сообщение max50 »

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

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

Сообщение edm2007 »

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

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

Сообщение amv2000 »

edm2007 писал(а):посегментная индикация - это очень интересно.

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

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

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

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

Тут баском 2.0.5.0 чудит:

Изображение

но прошивка вроде заливается.

А в 1.11.9.8 всё нормально:

Изображение

Программатор - перепрошитый avr910, видится как stk500.

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

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

Сообщение edm2007 »

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

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

Сообщение amv2000 »

Gordon Shumway писал(а):Доброго времени суток !Тут баском 2.0.5.0 чудит:

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

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

Сообщение edm2007 »

Вроде как речь про программаторы идет. :)

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

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

Сообщение amv2000 »

Да у меня много дурных привычек :))) В частности имел ввиду когда глобальные переменные и локальные с одинаковыми именами, у меня встречалось -возможно это нонсенс.
На Bascomavr как то указывали за версии 2:
Версии 2хх отличаются жестко урезанным блоком инициализации и даже изменением ее логики (что-переставлено, что-то не
делается автоматически), за счет этого размер кода и сокращен. Просто нужно более
тщательно подробно инициализировать оборудования не упуская ничего.

P.S. За программатор действительно не досмотрел....
Ответить

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