Страница 133 из 304
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 27, 2012 18:16:58
edm2007
Уф...

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

Один регистр управляет цифрами, второй регистр управляет разрядами... Я не знаю как еще сказать. *код показывать не буду*.
P.S. Вообще интересно, а что это за монстр такой, в котором и восьмиразрядный семисегментник, и дисплей от сотика, и кнопки да еще и энкодер до кучи.
P.P.S. Впрочем, не подумайте что я что-то навязываю. Если Вам не жалко лишний регистр, то конечно делайте по своей схеме. Просто я говорю о том, что сам так не делал. В таком варианте тоже преимущество есть...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 27, 2012 18:51:46
amv2000
Да ни какого монстра, это лабораторник БП на одном индикаторе текущее напряжение, на другом ток. На ЖК установки, пресеты возможно и как говорится по ходу будет видно... все это просто для души, размять лишний раз мозг, который и так долго был в покое. Просто у меня звезды чего то не складываются, то NOkia 3310 китаец графику не выводит(взял 1100,1202 попробую с ними) то динамическая индикация не заводится, вот и говорю чего то я упустил.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 27, 2012 19:13:47
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 виноват, то звезды не складываются. Сколько можно-то...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Вс май 27, 2012 21:43:14
amv2000
edm2007 писал(а):Какие, к черту, звезды? Это что, ход такой? Если Вы нарисовали СВОЮ схему, так и пишите СВОЙ код. В чем проблема-то?То Proteus виноват, то звезды не складываются. Сколько можно-то...
Да чем же это я так Вас разозлил

ну про звезды я как бы в тему хотел и не удачно привел
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
'****************************************************************************************************************
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 07:31:55
max50
Интересно, а эта схема "протянет" 20 разрядов? И кто-нибудь пробовал подключить к этой схеме RC5? Давно есть задумка переделать на современную базу(часы - AT89C52, DS1302, 2 КР580ВА86 и 12 CD4056BF; термометр - AT89C2051 и 2 DS1820) вот эти часы(за качество извеняюсь, красные индикаторы яркие, а со вспышкой ничего не видно):

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 11:41:08
edm2007
amv2000 писал(а):Да чем же это я так Вас разозлил
Просто вечер вчера был насыщен разными "удивительными" вопросами. Вот и накопилась критическая масса. Не воспринимайте это на свой счет.
Да, все верно, для управления каждым разрядом в отдельности нужна высокая частота обновления. И это конечно не всегда устраивает. Иначе пока мы добежим до нужной цифры, она будет слишком долго выключена. И естественно появится мерцание. Это минус, да. Но зато мы используем всего два регистра.
Ваш вариант интересен тем, что по сути своей это не один индикатор на 8 разрядов, а два по 4 разряда, работающие одновременно. И естественно им хватит гораздо меньшей частоты обновления. И это несомненно плюс. А минус в том, что нужно уже три регистра.
'--------------------------------------------------------
max50, ну дешифраторы-то уже хорошо. Почему бы их и не использовать?

Будет статика, а это вообще прекрасно.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 12:58:12
max50
edm2007 писал(а):max50, ну дешифраторы-то уже хорошо. Почему бы их и не использовать?

Будет статика, а это вообще прекрасно.

Ну не знаю, статика конечно лучше динамики, но кол-во микрух смущает. Тем более код для динамики есть, а для статики надо еще написать.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 13:25:00
edm2007
Так они есть, микрухи-то... И это под динамику код писать приходится, заморачиваясь. Например, для восьми разрядов нужна частота 500Гц, иначе мерцать все начинает. А это вызов прерывания каждые 2 мс. А тут изменил нужный разряд и все. Яркость не падает, обработка занимает совсем немного времени... Ну микрух будет много, это да. Если на каждый разряд ставить CD4056B, то это 4 ноги на разряд выйдет, для управления. Много... Впрочем, можно и 595 для статики привертеть. Да, так же будет много микрух, но ног всего 3 штуки уйдет. Так же их каскадом, удобно будет. Натолкали цифр при необходимости, защелкнули и все. А динамику на 20 разрядов это я не знаю...
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 13:38:16
max50
Сейчас занято 14 портов: 8 данные, 6 адреса. Если с динамикой как-то сталкивался, то со статикой, а тем более еще и через регистры, не приходилось. Вот и зацепился за динамику. Можете пример кода накидать для статики?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:00:11
amv2000
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:04:26
max50
Спасибо, мне бы что-нибудь на Васике.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:06:17
amv2000
Здесь статика на Васике и регистрах
http://avrproject.ru/publ/kak_podkljuch ... a/2-1-0-57
А вверху это как пример того, что можно и на 20 разрядов....
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:13:42
max50
Спасибо, буду разбираться.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:14:42
edm2007
Ну а что, посегментная индикация - это очень интересно.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Пн май 28, 2012 14:20:48
amv2000
edm2007 писал(а):посегментная индикация - это очень интересно.
Да сам заинтересовался и МК не так загружен, а места для регистров навалом и стоят не дорого.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 30, 2012 07:40:12
Gordon Shumway
Доброго времени суток !
Тут баском 2.0.5.0 чудит:
но прошивка вроде заливается.
А в 1.11.9.8 всё нормально:
Программатор - перепрошитый avr910, видится как stk500.
Почему так ?
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 30, 2012 12:11:03
edm2007
А у меня USBasp наоборот в 1.11.9.8 гонит и работать отказывается (хотя, в настройках есть), а в 2.0.5.0 все работает.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 30, 2012 16:10:18
amv2000
Gordon Shumway писал(а):Доброго времени суток !Тут баском 2.0.5.0 чудит:
Что то в памяти осталось, что версии 2 чудят с переменными. Т.е на предмет одинаковых имен переменных, если их поменять то всё ОК.
Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 30, 2012 16:17:38
edm2007
Вроде как речь про программаторы идет.
Офф: А Вы имеете привычку, присваивать одинаковые имена переменным? Вообще-то на это любой канпелятор ругаться будет.

Re: BASCOM AVR в вопросах и ответах
Добавлено: Ср май 30, 2012 18:00:37
amv2000
Да у меня много дурных привычек

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