Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR и Siemens M55
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
ххх
Цитата(Fusion @ May 29 2008, 11:11) *
Команды передаются двумя байтами: 1 - регистр, 2 - команда.
Например регистр 80, команда 01 DISP ON, команда 00 DISP OFF.

А где можно посмотреть расписание регистров? -в смысле какой чего делает?
Juras Pr.
Посмотреть можно было бы в даташите, но его покуда не видно в полном объёме. Сравнивая с другими даташитами подобных дисплеев, я пришел к выводу, что регистр EFh является неким переключателем банков, что подтверждается на практике. После команды lcd_wrcmd16($EF90) регистром 00h можно выключить дисплей как чёрным, так и белым цветом, причем в "выключенном" состоянии можно писать в память картинку любой сложности, после чего включить отображение и увидеть нарисованное. Используя переключение банков, можно не только во время инициализации, но и на ходу менять количество отображаемых цветов (65К или 8), разрядность интерфейса (16бит/8бит), включать/выключать негатив, менять местами синий и красный цвета, прокручивать изображение, определять активные области экрана (это для экономии питания, по аналогии с LPH88) и другие функции. Режим интерфейса 8бит позволяет использовать 256 цветов (формат RRGGGGBB, 1 байт на одну точку), что вполне достаточно, если не надо рисовать полутона, а время прорисовки примерно в 2 раза меньше, особенно полезно при заполнении экрана одним цветом. Что интересно, по разным банкам есть одинаковые функции, но по разным регистрам и с разным назначением битов в пределах регистра. Возможно, сделано для совместимости.
Привожу "расшифровку" блока инициализации экрана LS020/LQ020:

ls020_init_block_2:
.db 0xEF, 0x90 ;Bank Switch
.db 0x09, 0x83 ;Set X2 Corner, 131 - проверено
.db 0x08, 0x00 ;Set X1 Corner, 0 - проверено
.db 0x0B, 0xAF ;Set Y2 Corner, 175 - проверено
.db 0x0A, 0x00 ;Set Y1 Corner, 0 - проверено
.db 0x05, 0x00 ;Set Orientation - проверено
.db 0x06, 0x00 ;Set "cursor" position Y - проверено
.db 0x07, 0x00 ;Set "cursor" position X - проверено

.db 0xEF, 0x00 ;Bank Switch
.db 0xEE, 0x0C ;?

.db 0xEF, 0x90 ;Bank Switch
.db 0x00, 0x80 ;Display OFF (WHITE) - проверено

.db 0xEF, 0xB0 ;Bank Switch
.db 0x49, 0x02 ;Set Color Mode (positive) - проверено

.db 0xEF, 0x00 ;Bank Switch
.db 0x7F, 0x01 ;?
.db 0xE1, 0x81 ;?
.db 0xE2, 0x02 ;?
.db 0xE2, 0x76 ;?
.db 0xE1, 0x83 ;?
.db 0x80, 0x01 ; Display ON ?

.db 0xEF, 0x90 ;Bank Switch
.db 0x00, 0x00 ;Display ON - проверено

Часть этого блока можно выкинуть, сохранив работоспособность, например первую часть, если предполагается, что в функции стирания, что после инициализации, окно будет назначаться заново.
Или, например, нет смысла каждый раз при выводе символа или точки использовать команду lcd_wrcmd16($EF90), если не используются другие банки в ходе работы с экраном.
В присоединённом архиве есть демонстрационное видео с некоторыми проверенными функциями, правда качество не очень высокое.
Нажмите для просмотра прикрепленного файла
Зверюга
Подойдет ли это http://focus.ti.com/paramsearch/docs/param...ompare=true#sdp

для согласования 3.3. и 5 вольт при бщении 5 вольтового контроллера с дисплеем?
В параметрах есть Voltage nodes - что это такое?

И вообще - отписываемся, кто как в данном дисплее согласует уровни?
Alex_1811
Цитата(Зверюга @ May 31 2008, 15:33) *
И вообще - отписываемся, кто как в данном дисплее согласует уровни?


Сделал как в Using+the+Siemens+S65.pdf и все нормально работает.
Juras Pr.
Подойдет, но этот компонент несколько избыточен для данной ситуации, что отразится на цене.
Я пробовал питать от общего питания 3.3В дисплей и контроллер, а также пробовал использовать резистивные делители с 5-и на 3.3В, причём на линию сброса использовал номиналы в 10 раз больше, так как скорость на этом выводе не требуется. Результат одинаково положительный, скорость SPI 6МГц в первом случае и 8МГц во втором.
Зверюга
Избыточность по скорости?
На всякий случай хочу удостовериться - при частоте контроллера дисплея 13 МГц какую максимальную частоту SPI микроконтроллера работающего на 20 МГц можно использовать, и соответствует ли численно скорость транслятора уровней частоте SPI контроллера ?
Другими словами имеющися под рукой MAX3390 на частоте 16 МБит/сек подойдет?

Что касается цены - Max3390 стоит 58 руб. Указанные микросхемы техаса (8-ми канальные) - 0,70 у.е.

И еще - я пробовал питать все вместе от 5-ти вольт, дисплей работал довольно долго без проблем. Я пробовал питать все от 3,3 вольт - с дисплеем понятно, но мега32 на таком напряжении успешно держала 16 мГц и без глюков работала на частоте SPI2x.
Juras Pr.
На AVR частота SPI максимум может быть половиной частоты кварца. Подойдёт преобразователь даже на 10Мбит/сек, но небольшой запас не помешает, а 210Мбит микросхемы SN74LVC2T45 при трансляции на 3.3В многовато, хоть и работало бы, да и корпуса мелкие руками паять неудобно такие.
Резистивные преобразователи не очень привлекательны в случае автономного варианта, но и тут во время простоя экрана можно просто подавать на делители логические нули, чтобы ток не потребляли.
А 13МГц - это максимальная скорость SPI у контроллера LS020:
Нажмите для просмотра прикрепленного файла
Alex_1811
Цитата(Juras Pr. @ May 31 2008, 17:02) *
А 13МГц - это максимальная скорость SPI у контроллера LS020:

А можно посмотреть документ, откуда вложение, полностью?
Гдето видел что дисплей работал на скорости 20МГц.
Зверюга
Алекс, скорее всего Микроконтроллер работал на 20 Мгц, насчет 13 МГц для диспля - правда.
Зверюга
Обломс....
при согласовании 3 и 5 вольт микросхема MAXIM не дают 16 МБит - всего 8 МБит.

Так что выход - Техас.
Juras Pr.
Сам по себе документ неполный.
http://www.icany.cn/doc1/LS0208UD06.pdf
ххх
Цитата(Juras Pr. @ May 31 2008, 12:31) *
Часть этого блока можно выкинуть, сохранив работоспособность, например первую часть

А где именно заканчивается первая часть?
Цитата(Juras Pr. @ May 31 2008, 12:31) *
что в функции стирания

ЧЁ за функция стирания? как она пишется? -я с этим дисплеем начал работать 2года назад, но тогда ещё небыло этих наработок -вобщем ничего кроме циклической отрисовки всего экрана полностью, тогда добится не удалось, да и то получался очень тормозной девайс на частоте 20мегагерц -мега48. Повертел и бросил! А сейчас хочу обратно им занятся -читаю и удивляюсь- сколько всего нового здесь понаходили.
Fusion
У меня в восьмибитном режиме непонятка с цветами:
если полностью заливать окно - то цвета по схеме RRRGGGBB,
а если после команды отрисовки квадратика (0xEF90, 0x0500, 0x08X1, 0x09X2, 0x0AY1, 0x0BY2) - то GGGBBBRR.
На меге 88Р при 20 мгц и SPI 10 мгц в восьмибитном режиме полная заливка происходит за 30 милисекунд (33fps).
А если не ждать SPIF в регистре SPSR то 20 милисекунд (50fps). Только между командами out SPDR должно быть не меньше 16 тактов.
Зверюга
Цитата
А если не ждать SPIF в регистре SPSR то 20 милисекунд (50fps).


А ну-ка поподробнее, с кодом, какой библиотекой пользуетесь?
Fusion
Цитата(Зверюга @ Jun 1 2008, 21:30) *
А ну-ка поподробнее, с кодом, какой библиотекой пользуетесь?

Библиотекой не пользуюсь. На асме:
Код
fill:                        ; fill screen
        cbi     PORTB,LCD_CS    ; select Display
        cbi     PORTB,LCD_RS    ; clear RS line
        ldi     r31, 0xB5
        ldi     r30, 0x80
fill1:    out SPDR,color        ; load byte in SPI data register
        nop nop nop nop
        nop nop nop nop
        nop nop nop nop
        nop
        sbiw    r30,1
        brne    fill1
        ret
Juras Pr.
To xxx:
Не, аппаратное стирание я не нашел, я имею ввиду заливку экрана вручную. Так вот первый блок в инициализации (это где задаётся окно) можно и не трогать, а в функции стирания (заливки чёрным, например) это окно просто заново не назначать, если эта заливка сразу после инициализации стоит.
Я было дело начал документ рисовать, где описываются регистры, но некоторые я не могу корректно описать, особенно те, которые строки решёткой сдвигают, будто сведение в старом телевизоре. Есть регистр, который на контраст влияет, а есть который на скорость обновления экрана...
Регистр E8h (банк:EF90) тоже отвечает за режимы интерфейса, причем там много непонятного, где-то режимов 8 я насчитал с разными там перестановками битов.
ххх
Цитата(Juras Pr. @ Jun 1 2008, 23:34) *
To xxx:
Не, аппаратное стирание я не нашел, я имею ввиду заливку экрана вручную. Так вот первый блок в инициализации (это где задаётся окно) можно и не трогать, а в функции стирания (заливки чёрным, например) это окно просто заново не назначать, если эта заливка сразу после инициализации стоит.
Я было дело начал документ рисовать, где описываются регистры, но некоторые я не могу корректно описать, особенно те, которые строки решёткой сдвигают, будто сведение в старом телевизоре. Есть регистр, который на контраст влияет, а есть который на скорость обновления экрана...
Регистр E8h (банк:EF90) тоже отвечает за режимы интерфейса, причем там много непонятного, где-то режимов 8 я насчитал с разными там перестановками битов.

Да плохо что нормального даташита нет. Так вы выложите где нибудь то что уже написано в документе
-может ктото чегото добавит, или поможет разобратся, поэксперементирует, -вместе то легче разбиратся beer.gif

Цитата(Juras Pr. @ Jun 1 2008, 23:34) *
To xxx:
Не, аппаратное стирание я не нашел, я имею ввиду заливку экрана вручную. Так вот первый блок в инициализации (это где задаётся окно) можно и не трогать, а в функции стирания (заливки чёрным, например) это окно просто заново не назначать, если эта заливка сразу после инициализации стоит.
Я было дело начал документ рисовать, где описываются регистры, но некоторые я не могу корректно описать, особенно те, которые строки решёткой сдвигают, будто сведение в старом телевизоре. Есть регистр, который на контраст влияет, а есть который на скорость обновления экрана...
Регистр E8h (банк:EF90) тоже отвечает за режимы интерфейса, причем там много непонятного, где-то режимов 8 я насчитал с разными там перестановками битов.

Да плохо что нормального даташита нет. Так вы выложите где нибудь то что уже написано в документе
-может ктото чегото добавит, или поможет разобратся, поэксперементирует, -вместе то легче разбиратся beer.gif

Цитата(Juras Pr. @ Jun 1 2008, 23:34) *
To xxx:
Не, аппаратное стирание я не нашел, я имею ввиду заливку экрана вручную. Так вот первый блок в инициализации (это где задаётся окно) можно и не трогать, а в функции стирания (заливки чёрным, например) это окно просто заново не назначать, если эта заливка сразу после инициализации стоит.
Я было дело начал документ рисовать, где описываются регистры, но некоторые я не могу корректно описать, особенно те, которые строки решёткой сдвигают, будто сведение в старом телевизоре. Есть регистр, который на контраст влияет, а есть который на скорость обновления экрана...
Регистр E8h (банк:EF90) тоже отвечает за режимы интерфейса, причем там много непонятного, где-то режимов 8 я насчитал с разными там перестановками битов.

Да плохо что нормального даташита нет. Так вы выложите где нибудь то что уже написано в документе
-может ктото чегото добавит, или поможет разобратся, поэксперементирует, -вместе то легче разбиратся beer.gif
Fusion
Собрал на макетке мини-осциллограф.

Atmega88p-20 (реально стоит кварц на 9.6)
АЦП - SPT1175
Предусилителя пока нет.
Восьмибитный режим.
На картинке реальный видеосигнал.

При кварце 20 Мгц оцифровка идет с частотой 6.7 Мгц. Выборка 160 точек.
Alex_1811
Цитата(Fusion @ Jun 4 2008, 14:01) *
Собрал на макетке мини-осциллограф.

Atmega88p-20 (реально стоит кварц на 9.6)
АЦП - SPT1175
Предусилителя пока нет.
Восьмибитный режим.
На картинке реальный видеосигнал.

При кварце 20 Мгц оцифровка идет с частотой 6.7 Мгц. Выборка 160 точек.

Кльово, а как на счет исходников.
Народ тебя не забудет. beer.gif
Fusion
А исходники пока то же на макетке...
Не уверен, что буду доделывать. Может перейду на АРМ.
Вот файл .асм для АВР студио.
Во фьюзах на порт В0 выведена тактовая МК. От кварца АЦП работать не захотел.


Почему-то не смог здесь добавить файл...http://www.tvinfo.ru/tp/88.asm
Cyber_RAT
выборку IMHO стоило бы сделать в раза 3 дольше - лучше б синхронизировалось...
изображение не мельтешит?
можно было бы тактовую с xtal2 брать..
Juras Pr.
To Fusion:
И разница между режимами 8/16бит визуально чувствуется по скорости?
Два дня на форум не мог зайти.
Fusion
Cyber_RAT
А от длины выборки наверное ничего не изменится. Я сначала жду условия синхронизации, а после делаю выборку.
Видео изображения : Видео 5 секунд 820 кб
Немного сбивается - наверное на кадровом синхроимпульсе.
С xtal2 не получилось - мега останавливается.

Juras Pr.
Да, разница есть, так как инфы передать в два раза больше плюс обсчитать надо два байта цвета. Смена кадра становится заметна.
skripach
Молодца!!!, Прикольно.
Cyber_RAT
Fusion:
глянул еще раз исходник... выборка 1 байта
in temp, PIND 1
lsr temp 1
st Y+, temp 2
nop 1
nop 1
итого 6 тактов
20/6=3.3333333, а как получается 6.7 ?
Fusion
Cyber_RAT

Это я уменьшил частоту выборки - что бы строка видеосигнала целиком влезла (64 мКс).
На максимальной скорости другой код:
in temp, PIND 1
st Y+, temp 2
in temp, PIND 1
st Y+, temp 2
...
in temp, PIND 1
st Y+, temp 2

И так 176 раз.
Т.е. 3 такта на выборку.
Зверюга
Господа, вопрос есть.
Хочу в девайсе совместно с дисплеем s65 использовать память DataFlash, которая тоже общается с МК через SPI. Можно конечно посадить флешку на отдельные пины, сгородить программный SPI, но зачем? Ведь одновременно, такт в такт работать с двумя девайсами все равно не получится...
А если посадить и флешку и дисплей на одни и теже пины аппаратного SPI, а входы ChipEnable на разные будет нормально работать? Ведь что у дисплея, что у флешки все функции начинаются и заканчиваются изменением статуса ChipEnable.
Alex_1811
Цитата(Зверюга @ Jun 7 2008, 20:07) *
А если посадить и флешку и дисплей на одни и теже пины аппаратного SPI, а входы ChipEnable на разные будет нормально работать? Ведь что у дисплея, что у флешки все функции начинаются и заканчиваются изменением статуса ChipEnable.


Конечно можно. Для этого и ChipEnable-чтоб подключать несколько устройств к одному интерфейсу.
Зверюга
А RS у дисплея для чего?
yarunt
Цитата(Зверюга @ Jun 8 2008, 15:20) *
А RS у дисплея для чего?

Нога,которая определяет в дисплее команду или дату.
Spym
L2F50126,
мега32 20мгц.

При 10 мгц SPI, дисплей не работает, и не инициализируется. 5мгц работает, но медленно: на глаз 5 кадров в секунду, не больше.

Я здесь слышал, что максимальная скорость SPI для дисплея 13 мгц. у кого-нибудь L2F50 на такой скорости запускается?
Cyber_RAT
а какое согласование дисплея и меги? какая длина проводов на которых висит дисплей? (напряжение питания?)

p.s. мега32 разве оффициально работает на 20мгц? тут вроде и писал уже кто-то, что при разгоне меги спи переставал работать. Попробуйте на 8 мгц при 16мгц кварце запустить.
Alex_1811
Цитата(Spym @ Jun 10 2008, 16:18) *
L2F50126,
мега32 20мгц.

При 10 мгц SPI, дисплей не работает, и не инициализируется. 5мгц работает, но медленно: на глаз 5 кадров в секунду, не больше.

Я здесь слышал, что максимальная скорость SPI для дисплея 13 мгц. у кого-нибудь L2F50 на такой скорости запускается?


Дисплей L2F50126 очень боится помех у меня с включенной ШИМ подсветкой выводил разный мусор.
Нацепляй конденсаторов на питание.
Можно глянуть проект?
mail: Alexey_Vikt@list.ru
Spym
Цитата
а какое согласование дисплея и меги? какая длина проводов на которых висит дисплей? (напряжение питания?)


Мега 5В, дисплей 3.3В, согласование CD4050.
Провода 120мм.

Цитата
Дисплей L2F50126 очень боится помех у меня с включенной ШИМ подсветкой выводил разный мусор.
Нацепляй конденсаторов на питание.


конденсаторов нацеплял... подсветка запитана от 9В, ШИМ нет.
Fusion
У CD4050 задержки при 5 вольтах питания до 0.1 мкс. При 3 - еще больше.
Лучше включить через резисторы или мегу запитать от 3.3. У меня atmega88p работает от 3.3 вольт с кварцем 24 мГц.
Зверюга
Заказал на сайте Texas Instrumentsлогические трансляторы уровней - задержки - наносекунды, частота - до 400 МГц, бесплатно.
Всем рекомендую. Говорить что заказал не буду - ибо ассортимент у них широчайший, надо самим смотреть и выбирать.
viael
Цитата(Зверюга @ Jun 12 2008, 08:50) *
Заказал на сайте Texas Instrumentsлогические трансляторы уровней - задержки - наносекунды, частота - до 400 МГц, бесплатно.
Всем рекомендую. Говорить что заказал не буду - ибо ассортимент у них широчайший, надо самим смотреть и выбирать.


Это лишнее.Проще взять LPC2000/SAM7/PIC24/Silabs или любой другой камень с 3.3В питанием, кроме того AVR все равно слабоват для такого дисплея.
Cyber_RAT
Если видео показывать - то да.
А если необходим просто дисплей графический (подешевле чем мэлтовский 128х64), да еще и с возможностью выводить N-цветов, то авр вполне справляется (особенно если еще и в 8 бит перевести дисплей).
Sergey Parfenov
Нужна помощь! Контроллер атмега 16(питается 5В), диcплей LS020(преобразователь 2,8В). Подключено след. образом(через резисторные делители):
RS PB1
RESET PB2
CS PB0
CLK PB7
DAT PB5
Библиотеку для работы с дисплеем взял из мр3-плеера с жд, выложенного в этой ветке. Проблема заключается в том, что контроллер постоянно виснет при работе с дисплеем. Иногда виснет при инициализации, но обычно при рисовании. Но сам по себе контроллер работает нормально, если не начинает общаться с дисплеем. Есть подозрения, что нужно что-то где-то подправить, ведь библиотека заточена под 128 атмегу. help.gif
dENIM
какой то бок с SPI
попробуйте не ждать флага, а вставьте кучку нопов.
Sergey Parfenov
Цитата(dENIM @ Jun 15 2008, 18:29) *
какой то бок с SPI
попробуйте не ждать флага, а вставьте кучку нопов.

Спасибо за совет, я понимаю, что проблема где-то здесь, но пока не могу найти. Кучка нопов, к сожалению, не помогает, только инициализация совсем перестает проходить.
Sergey Parfenov
Почему-то не могу отредактировать предыдущее сообщение. Все разобрался. Все дело было в том, что нога SS была сконфигурирована по умолчанию как вход. А у меня она болтается в воздухе, потому от наводок контроллер периодически считал себя не мастером, а ведомым. beer.gif
Juras Pr.
Действительно, в 8-битном режиме после записи RE8h=00h (после RE0h=90h) формат данных RRRGGGBB. А после RE8h=40h формат данных BBGGGRRR. Составил таблицы палитры для 8-битного режима, может быть полезно. Проверено. Для возврата в 16-битный режим можно использовать RE8h=0Fh.
Нажмите для просмотра прикрепленного файла
Juras Pr.
Палитры для импорта для графических редакторов типа Gimp или Photoshop. В архиве также есть немного подправленная картинка (вместо регистра RE0h указан REFh в самом верху картинки).
Включается режим так:
lcd_wrcmd16($EF90);
lcd_wrcmd16($E800);
Первая команда может не понадобиться.
Нажмите для просмотра прикрепленного файла
Sergey Parfenov
Никак не могу победить низкую скорость прорисовки sad.gif Переделал под 8ми битный цвет, практически никакой разницы. Процедура очистки(заливки) на ассемблере работает, конечно, побыстрее, чем на С, но все равно экран заливается слишком долго. Теоретически на 8МГц SPI должно быть порядка 20 кадров в секунду при 16-битном цвете... При этом на глаз нет никакой разницы, включен 2х или нет. Почему-то не до конца заливается дисплей, если отправлять 132Х176=5АС0 байт, остается порядка 170 незакрашенных пикселей sad.gif
Fusion
Цитата
Почему-то не до конца заливается дисплей, если отправлять 132Х176=5АС0 байт, остается порядка 170 незакрашенных пикселей

Значит в цикле 132 не выводися по одному байту - итого минус 176.
Вот код для полной очистки:
Код
fill:                        ; fill screen
        cbi     PORTB,LCD_CS; select Display
        cbi     PORTC,LCD_RS; clear RS line
        ldi     r31, 0xB5
        ldi     r30, 0x80
fill1:    mov temp, color        ; load byte in SPI data register
        call lcd_wrdata
        sbiw    r30,1
        brne    fill1
        ret


Про скорость:
Цитата
На меге 88Р при 20 мгц и SPI 10 мгц в восьмибитном режиме полная заливка происходит за 30 милисекунд (33fps).
А если не ждать SPIF в регистре SPSR то 20 милисекунд (50fps). Только между командами out SPDR должно быть не меньше 16 тактов.

Измерял осциллографом.
Juras Pr.
А у меня разница очень заметна, использую только ассемблер, после посылки байта на SPI делаю задержку нопами, флаг не проверяю.

To Fusion:
По Вашему примеру в 8-битном режиме будет происходить заполнение экрана 2 раза, так как B580=46464.
Sergey Parfenov
Я тоже флага не жду - получается пошустрее. Как раз такой цикл и используется, только в регистр загружается 5АС0. Попробую посчитать, сколько у меня получается фпс. На крайний случай, буду очищать только те области, где выодится информация.
Fusion
Juras Pr.
Да, это для 16 битного режима пример...
На самом деле у меня вот такой код:
Код
    cbi     PORTB,LCD_CS   ;select Display
    cbi     PORTB,LCD_RS   ; clear RS line

loop:     ldi r21, 176
f2:        ldi r22, 132
f1:
        out SPDR,color       ;load byte in SPI data register

nop nop nop nop
nop nop nop nop
nop nop nop nop
nop nop

        dec r22
        brne f1
        dec r21
        brne f2

        inc color
        rjmp loop

Быстрее не получается.
Запаял reset LCD на reset меги. Все работает. Хотел и CS навсегда выбрать - не получилось. Инициализация проходит, данные не пишутся.
Была инфа, что задержки при инициализации нельзя увеличивать. Для LS020 оказалось можно. У меня отвалился кварц - и мега засинхронизировалась от 100 кГц (преобразователь подсветки на 34063). Ооочень медленно экранчик запустился. Кстати 34063 жрет 70 мА от 3.3 вольт. КПД примерно 50 %. Что бы такое поэкономичнее найти?
Juras Pr.
Я тоже пробовал тактировать от внутреннего генератора 8МГц, в то время, как программа была присособлена к 12МГц и всё работало smile.gif. Я использую подсветку от Кранца и надо сказать, КПД получается не плохой, главное полевик хороший и дроссель добротный взять.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.