реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос новичка по AVR
VanDoo
сообщение Dec 1 2008, 20:04
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 1-12-08
Пользователь №: 42 133



Здравствуйте!

Начинаю изучать микроконтроллеры. Выбрал AVR.
В качестве первого проекта хочу сделать устройство, которое подключается по usb и позволяет управлять 8-ью транзисторными выходами (для коммутации небольшой нагрузки).
Собираюсь приобрести AVR Dragon (стоит ли брать именно его?)
Какую конкретно AtMega лучше выбрать?
Может быть где-нибудь есть подобные схемы?

Заранее большое спасибо!!!


--------------------
http://forum.portal01.ru - всё о пожарной безопасности
Go to the top of the page
 
+Quote Post
Petka
сообщение Dec 1 2008, 20:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(VanDoo @ Dec 1 2008, 23:04) *
Здравствуйте!

Начинаю изучать микроконтроллеры. Выбрал AVR.
В качестве первого проекта хочу сделать устройство, которое подключается по usb и позволяет управлять 8-ью транзисторными выходами (для коммутации небольшой нагрузки).
Собираюсь приобрести AVR Dragon (стоит ли брать именно его?)
Какую конкретно AtMega лучше выбрать?
Может быть где-нибудь есть подобные схемы?

Заранее большое спасибо!!!

Удобны мега128 - как один из самых толстых массовых чипов, так и мега8, как один из маленьких, дешёвых, и тоже массовых (с заменами на мегу 48, 88, 168)
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 1 2008, 21:04
Сообщение #3


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Вот готовый проект USB-Parallel Output:
http://www.obdev.at/products/avrusb/powerswitch.html
На сайте ещё много других USB-проектов.

Посмотрите на USBTiny:
http://www.xs4all.nl/%7Edicks/avr/usbtiny/

Также можно попробовать IgorPlugUSB, который стал классическим:
http://www.cesko.host.sk/hardware.php


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
VanDoo
сообщение Dec 1 2008, 21:54
Сообщение #4





Группа: Участник
Сообщений: 11
Регистрация: 1-12-08
Пользователь №: 42 133



Изучаю...
Огромное спасибо.


--------------------
http://forum.portal01.ru - всё о пожарной безопасности
Go to the top of the page
 
+Quote Post
domowoj
сообщение Dec 2 2008, 02:27
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 548
Регистрация: 20-12-07
Из: г.Новосибирск
Пользователь №: 33 486



Цитата(VanDoo @ Dec 2 2008, 02:04) *
В качестве первого проекта хочу сделать устройство, которое подключается по usb


Что-то Вы сразу замахнулись "на Вильяма нашего, так сказать, Шекспира".

Сложно будет.


--------------------
И на камнях растут деревья!
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 2 2008, 11:12
Сообщение #6


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446



Цитата(domowoj @ Dec 2 2008, 06:27) *
Что-то Вы сразу замахнулись "на Вильяма нашего, так сказать, Шекспира".
Сложно будет.

Ну, повторить-то будет не сложно, а вот если устройство заработает, опыт будет бесценным. Конечно, просто поморгать светодиодом для начинающего наверное лучше, но эти конструкции уже многократно проверены, в крайнем случае на той-же плате USB можно будет и потренироваться со светодиодом, а после залить рабочую прошивку.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
Electronic)
сообщение Dec 2 2008, 19:56
Сообщение #7


Частый гость
**

Группа: Новичок
Сообщений: 97
Регистрация: 15-04-08
Пользователь №: 36 783



Очень интересно. А на русском подобные ссылки имеются?


--------------------
Самурай без меча - такой же, как самурай с мечом, только без меча
Go to the top of the page
 
+Quote Post
shuks
сообщение Dec 5 2008, 21:01
Сообщение #8





Группа: Новичок
Сообщений: 11
Регистрация: 12-04-08
Пользователь №: 36 705



По моему опыту обучение пойдёт намного продуктивнее если ты не будешь тупо копировать чьи-то работы, а сам писать всё от начала и до конца.
Начни просто с мигания светодиодом по счетчику, потом несколько с/д попеременно, потом с ШИМом разберись, потом АЦП и уж потом передача данных по COM / USB
Go to the top of the page
 
+Quote Post
chajnik
сообщение Dec 8 2008, 07:57
Сообщение #9


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 25-08-08
Пользователь №: 39 811



Думаю,мой вопрос для этой темы подойдет.Тоже недавно начал изучать программирование AVR.На СИ и компилятором CVAVR.Уже многому научился.Вот щас никак не могу додуматься-как сделать так,чтобы при кратковременном нажатии кнопки программа выполняла одну работу,а при удерживании например 3 сек.-другую. Понимаю,что нужно считать время,как это сделать,не пойму.
help.gif

Сообщение отредактировал chajnik - Dec 8 2008, 07:58
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Dec 8 2008, 08:20
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(chajnik @ Dec 8 2008, 11:57) *
Думаю,мой вопрос для этой темы подойдет.Тоже недавно начал изучать программирование AVR.На СИ и компилятором CVAVR.Уже многому научился.Вот щас никак не могу додуматься-как сделать так,чтобы при кратковременном нажатии кнопки программа выполняла одну работу,а при удерживании например 3 сек.-другую. Понимаю,что нужно считать время,как это сделать,не пойму.
help.gif


Зависит от того как у вас реализовано сканирование кнопок.
Если чтото типа такого:
Код
if(!PINC.1) //если кнопка нажата то ждём пока её отпустят
{
   while(!PINC.1);
}


То вставте в цикл while счётчик и инкриментируйте его (только подберите константу _3000ms ):

Код
cnt=0;
if(!PINC.1) //если кнопка нажата то ждём пока её отпустят
{
   while(!PINC.1) cnt++;

  if(cnt < _3000ms) task1(); //при удержании меньше 3с
  else task2(); //при удержании больше 3с

}


Если приведёте ваш вариант сканирования кнопок то подсказать как вам реализовать вашу идею будет проще wink.gif
Go to the top of the page
 
+Quote Post
chajnik
сообщение Dec 8 2008, 08:32
Сообщение #11


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 25-08-08
Пользователь №: 39 811



У меня именно так опрос кнопок,спасибо,буду разбираться.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Dec 8 2008, 08:32
Сообщение #12


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(mempfis_ @ Dec 8 2008, 11:20) *
Зависит от того как у вас реализовано сканирование кнопок.
Если чтото типа такого:

то придётся всё переделать, ибо чушь.
Стоять и ждать 3 секунды, пока нажата кнопка - непозволительная блажь.
Тем более никакой защиты от дребезга.
Нормальный вариант - это опрос по таймеру и выставление соответственных флагов для последующей обработки в основном потоке.
А обработка следующая:
Если флаг стоит более _хх_ (нужное вписать) миллисекунд (обычно 20-50), считаем, сто кнопка нажата и выполняем нужное действие.
Если более _хххх_ мс (3000, например), то выполняем другое действие. Время отсчитывается по тому же таймеру, то есть в каждом прерывании инкрементируем переменную времени.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
chajnik
сообщение Dec 8 2008, 08:40
Сообщение #13


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 25-08-08
Пользователь №: 39 811



Цитата
Стоять и ждать 3 секунды, пока нажата кнопка - непозволительная блажь.
В моей программе это не страшно,думаю пример mempfis_ лучше подойдет для меня, с этим-
Код
cnt
я еще не сталкивался.Это что ,переменная,CVAVR на это- _3000ms ошибку выдает,что такое task тоже не знаю.

Сообщение отредактировал chajnik - Dec 8 2008, 09:02
Go to the top of the page
 
+Quote Post
mempfis_
сообщение Dec 8 2008, 09:20
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 001
Регистрация: 27-06-06
Пользователь №: 18 409



Цитата(chajnik @ Dec 8 2008, 12:40) *
В моей программе это не страшно,думаю пример mempfis_ лучше подойдет для меня, с этим-
Код
cnt
я еще не сталкивался.Это что ,переменная,CVAVR на это- _3000ms ошибку выдает,что такое task тоже не знаю.


В CVAVR есть библиотека delay.h delay_ms(), delay_us().
Подключите её через #include <delay.h>

Перед функцией main объявите глобальную переменную
Цитата
unsigned int cnt=0;


и константу количества инкрементов этого счётчика которые будут считаться как 3 секунды
Код
#define _3000ms 3000



Код
#include <delay.h>

unsigned int cnt=0;
#define _3000ms 3000

void task1(void)
{
//действия при удержании менее 3 с
}

void task2(void)
{
//действия при удержании более 3 с
}

void main(void)
{
//инициализация мк

for(;;)
{

   if(!PINC.1) //если кнопка нажата то ждём пока её отпустят
   {
     cnt=0;
     while(!PINC.1)
    {
      if(cnt != 0xffff)  cnt++;//инкримент с проверкой на границу
      delay_ms(1);//ждём миллисекунду
     }

    if(cnt < _3000ms) task1(); //при удержании меньше 3с
    else task2(); //при удержании больше 3с
   }
}

}


tsk1(), task2() - это ваши функции в которых вы можете выполнить необходимые вам действия
Потренеруйтесь на этом для начала а потом сделайте как вам посоветовал MrYuran и как делают все в таком случае - для сканирования кнопок используйте прерывания от одного из таймеров smile.gif

Сообщение отредактировал mempfis_ - Dec 8 2008, 09:20
Go to the top of the page
 
+Quote Post
chajnik
сообщение Dec 8 2008, 09:39
Сообщение #15


Участник
*

Группа: Новичок
Сообщений: 21
Регистрация: 25-08-08
Пользователь №: 39 811



Все понял.
Go to the top of the page
 
+Quote Post
Neman2000
сообщение Dec 17 2008, 08:27
Сообщение #16





Группа: Новичок
Сообщений: 5
Регистрация: 26-11-08
Пользователь №: 41 983



Цитата(domowoj @ Dec 2 2008, 05:27) *
Что-то Вы сразу замахнулись "на Вильяма нашего, так сказать, Шекспира".

Сложно будет.

В Flowcode ,eltn d 1000 раз проще!!!!!
Сам немного пробовал,да и люди продвинутые в
микроконтроллерах пишут:
-"Для программы- Flowcode (есть для-AVR есть и для PIC) ненужен язык, как все остальные. не нужно писать кодов в редакторе.
тут программа собирается из кубиков, визуально. то есть ты рисуешь алгоритм программы из готовых кирпичиков с определенными функциями, а
код непосредственно программа пишет (компилирует) за вас, фактически языка как такового знать не нужно, достаточно найти общий язык с
программой, понять что каждый элемент делает.
это совсем не сложно, расматривайте каждый кубик как радиодеталь, компонент со своими функциями.
и стройте свою схему, все остальное, вплоть до получения конечного HEX файла (ко%

Сообщение отредактировал Neman2000 - Dec 17 2008, 08:55
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Dec 17 2008, 11:49
Сообщение #17


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(Neman2000 @ Dec 17 2008, 11:27) *
В Flowcode ,eltn d 1000 раз проще!!!!!
Сам немного пробовал,да и люди продвинутые в
микроконтроллерах пишут:
-"Для программы- Flowcode (есть для-AVR есть и для PIC) ненужен язык, как все остальные. не нужно писать кодов в редакторе.
тут программа собирается из кубиков, визуально. то есть ты рисуешь алгоритм программы из готовых кирпичиков с определенными функциями, а
код непосредственно программа пишет (компилирует) за вас, фактически языка как такового знать не нужно, достаточно найти общий язык с
программой, понять что каждый элемент делает.
это совсем не сложно, расматривайте каждый кубик как радиодеталь, компонент со своими функциями.
и стройте свою схему, все остальное, вплоть до получения конечного HEX файла (ко%

Сколько же человек пишут на ассемблере, С и не знают сего чуда. smile.gif
Каково качество кодогенерации? Прежде чем рекламировать (и не в одном месте) оцените качество кода и объем. Обычно плата за простоту создания огромный избыточный код.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
Spirit412
сообщение Dec 26 2008, 08:35
Сообщение #18





Группа: Новичок
Сообщений: 5
Регистрация: 20-10-08
Пользователь №: 41 057



Цитата(mdmitry @ Dec 17 2008, 14:49) *
Сколько же человек пишут на ассемблере, С и не знают сего чуда. smile.gif
Каково качество кодогенерации? Прежде чем рекламировать (и не в одном месте) оцените качество кода и объем. Обычно плата за простоту создания огромный избыточный код.


А есть ещё и Algorithm Builder for AVR
http://algrom.net/russian.html
Программирование идёт визуально... сам код на ассемблере.
Как народ пишет (сам только начинаю изучать МК)... то этой прогой можно легко отлаживать большие программы на ассемблере... проще не запутаться случайно!
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Dec 26 2008, 09:59
Сообщение #19


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Spirit412 @ Dec 26 2008, 16:35) *
Как народ пишет

Народ это профессионалы или ...? Прежде, чем доверяться "объективному" мнению народа, следует почитать топики с обсуждениями сих чудных продуктов. На электрониксе они есть.

P.S. Выбрав AB или что-то в этом роде Вы прежде всего лишите себя квалифицированной помощи специалистов, которые вряд ли захотят разбираться в экзотике. Издавна получается, что программирование в машинных кодах ведется с помощью ассемблера, а для замены ассемблера есть Си++. AB и что-то там еще, к сожалению не в одну нишу не попадают.

З.Ы. Все сказанное всего лишь мое ИМХО, которое формировалось на основе личного опыта, чтения подобных веток "... vs ..." и т.п. А также все сказанное относится к МК, ни о каких IBM PC и т.п. речь не идет.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 26 2008, 18:12
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(haker_fox @ Dec 26 2008, 12:59) *
программирование в машинных кодах ведется с помощью ассемблера, а для замены ассемблера есть Си++. AB и что-то там еще

Программирование в машинных кодах -ведется в машинных кодах (двоично, восьмирично , шестнацатирично) . Сам ляпал крохотные восьмиричные тестовые программки для ремонта PDP-11, но знал человека, написавшего тетрис в машинных кодах.
АБ , чтобы не говорили специалисты и примкнувшие к ним, кто таковыми себя считает, полноценный ассемблер, один в один , что напишешь , то и получишь. В отличии , например , от Кодевижена, который склоняют на каждом углу.
И почему то, никто не желает бросить Винды и вернуться в ДОС.
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Dec 29 2008, 00:09
Сообщение #21


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



кстати, по теме. сильно рекомендую arduino decimilia -
недорогая платка с USB, есть цифровые-входы-выходы и аналоговые входы.

http://www.arduino.cc/


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 29 2008, 23:20
Сообщение #22


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(muravei @ Dec 26 2008, 21:12) *
знал человека, написавшего тетрис в машинных кодах.
Даа. Знал что мазохисты встречаются, но чтобы так...
Цитата(muravei @ Dec 26 2008, 21:12) *
АБ , чтобы не говорили специалисты и примкнувшие к ним, кто таковыми себя считает, полноценный ассемблер, один в один , что напишешь , то и получишь.
При хорошем понимании СИ и даже СИ++ и нормальном инструментарии типа IAR, GCC Ваши слова вызывают скепсис. Что, вернее как напишешь на СИ - то такой ASM листинг и получишь. Не надо загонять себя в угол. При массе достоинств у ASM есть и не меньшее количество недостатков. Я твёрдо убеждён в том, что человек написавший хоть раз программу на языке высокого уровня никогда не захочет вернутся на чистый ASM без жизненной на то необходимости. А всякие там недоязыки программирования - это однозначно тупиковая ветвь.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Spirit412
сообщение Dec 30 2008, 07:18
Сообщение #23





Группа: Новичок
Сообщений: 5
Регистрация: 20-10-08
Пользователь №: 41 057



Можете конечно смеяться... Но напишу как лузер... который только начал осваивать МК... и программирование их.
Кроме программирования на PHP... и явы... А... ну ещё Визуал бэйсик для Корела... и ЯвыСкрипт для Иллюстратора... с панорамированием не сталкивался.

Сначало было очень сложно сделать выбор книги... т.к. большая часть является либо переводом на русский даташита... либо ориентируется на пользователей - уже имеющих представление о МК...
Книга на которой остановился - это "Вводный курс" Джона Мортана.... Очень всё доходчиво описано.... Но примеры разбираемые, написаны на АСМ...
Посмотрел я тут описание СИ... и понял! Достаточно вникнуть... хотябы в общем представлении в АСМ и научиться программировать более менее сложные программы... А дальнейший переход на Си... будет делом одной, двух недель.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 30 2008, 10:19
Сообщение #24


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Spirit412 @ Dec 30 2008, 10:18) *
Посмотрел я тут описание СИ... и понял! Достаточно вникнуть... хотябы в общем представлении в АСМ и научиться программировать более менее сложные программы... А дальнейший переход на Си... будет делом одной, двух недель.
Есть золотое правило: первые 30 программ будут с весьма серьезными идеологическими ошибками. Но как-то работать они будут... Практика, много разных хороших и не очень книг, практика и ещё раз практика... И ещё очень полезно для СИ программиста читать книги по СИ++ даже если Вы на нём не программируете вовсе. Можно почерпнуть массу полезной информации с точки зрения идеологии и подходов.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
muravei
сообщение Dec 30 2008, 15:18
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(demiurg_spb @ Dec 30 2008, 02:20) *
Даа. Знал что мазохисты встречаются, но чтобы так...

Просто , по другому тогда было сложнее. smile.gif
Вы в те времена , еще лежали густо присыпанные тальком...Ну , или как минимум-под стол пешком ходили...
Цитата(demiurg_spb @ Dec 30 2008, 02:20) *
Что, вернее как напишешь на СИ - то такой ASM листинг и получишь.

Была тут где-то темка , где человеку требовалось точно знать последовательность операторов, а компилятор сообщал что , он ничего не гарантирует. Все кончилось советом сделать вставку на асм.
А вообще-то я не собираюсь с вами препираться: ну нравится вам си , ну и програмьте на здоровье. А АБ это среда (асмоподобная) и просто удобнее , хотя бы симулятором, да и по листигу ползать не надо. Сделают визуальный си (не VC) буду им пользоваться.
И еще .
В данный момент разбираюсь сишной программе, наваянной одним Си-программистом , ну к программе притензий нет, а вот железом у чела явно проблемы (с фузами такого нагородил).
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 30 2008, 20:39
Сообщение #26


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(muravei @ Dec 30 2008, 18:18) *
Просто , по другому тогда было сложнее. smile.gif
Вы в те времена , еще лежали густо присыпанные тальком...Ну , или как минимум-под стол пешком ходили...
Все когда-то делали этоsmile.gif
Цитата(muravei @ Dec 30 2008, 18:18) *
Была тут где-то темка , где человеку требовалось точно знать последовательность операторов, а компилятор сообщал что , он ничего не гарантирует.
"И молвит она ему человеческим голосом":) Прямо кокой-то первобытный страх перед компилятором испытывать начинаешь. Ну а если серьезно, то язык программирования создан для того чтоб программист мого достичь того результата, который он задумал. Программа всегда строго детерминирована и мне с огромным трудом верится в невозможность реализации какой бы то нибыло алгоритмической, логической или математической последовательности на СИ. Любую идею реализованную на ASM без использования особо специфических инструкций можно реализовать на СИ. Я не твердолобый упертый баран и ясно представляю назначение ASM. В конечном итоге за всё приходится платить. И за СИ тоже. Простите если что. Но люди конечно совершенно разные. И некоторые из них намеренно отрекаются от благ цивилизации - им это даже полезно. Вы видимо один из немногихsmile.gif Поверьте, что у меня нет даже ни одной ассемблерной вставки, а суммарный объем исполняемого кода моих програм для AVR немного не дотягивает до 1,5 Мб.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Dec 31 2008, 03:29
Сообщение #27


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



ну не всегда Си хорошо.
Я делал Макровижн декодер - там надо было очень точно определять время вспышки, положение уровня черного - ну "кто плавал" - пойметь.
Дык я и не думал о Си.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01655 секунд с 7
ELECTRONIX ©2004-2016