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

 
 
> ATmega16 + PT2322 + PT2323, Пишем программу в Code Vision AVR...
Дмитрий(846)
сообщение Mar 4 2013, 21:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894



Здравствуйте я ученик, и ничего не понимаю в написание программы для ATmega16. Надеюсь здесь я найду людей которые мне смогут помочь.
Суть такова у меня есть печатка приложил ниже. (уже сделана, распаяна)

Помогите начать с нуля, написать прошивку.

Сперва надо сказать то, что будет делать программа и собственно ATmega:
-Управлять аудио процессорами по интерфейсу I2C. (Аудио процессоры PT-2322 + PT2323)
-Выводить состояние параметров и управления на LCD Winstar 16x2.
-Сигнализировать свечением диодов о выбранных параметрах.
-Управляться пультом по протоколу RC-5
-Управляться 5 кнопками (Sesect, 2.1, 5.1, AC-3, StandBy).

C чего начать я даже и не знаю.

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

Прикрепленные файлы
Прикрепленный файл  Home_Sinema_1.6.rar ( 230.64 килобайт ) Кол-во скачиваний: 110
Прикрепленный файл  _____.txt ( 1.06 килобайт ) Кол-во скачиваний: 134
Прикрепленный файл  ________lay.rar ( 91.77 килобайт ) Кол-во скачиваний: 83
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
artkam
сообщение Mar 6 2013, 15:48
Сообщение #2


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

Группа: Участник
Сообщений: 182
Регистрация: 14-09-10
Из: Уфа
Пользователь №: 59 479



Вот здесь про обработку нажатия клавиш при помощи АЦП очень подробно расписано, даже приведены примеры кода: http://chipenable.ru/index.php/programming...du-chast-1.html
Go to the top of the page
 
+Quote Post
Mik174
сообщение Mar 6 2013, 19:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 357
Регистрация: 6-01-07
Пользователь №: 24 139



Озвученная задача - не для того, кто "я ученик, и ничего не понимаю в написание программы для ATmega16".
Вероятность что ничего не получится весьма высока.

Про аудиопроцессоры пока и не думайте. Если не в курсе что такое делитель напряжения, то туда пока нечего даже и заглядывать - все равно ничего не поймете.

В качестве совета - возьмите для начала задачу попроще и разберитесь с основами программирования МК.

Разбейте свою задачу на кусочки и понемногу с ними разбирайтесь, начиная с самого простого.
По мере освоения простых вещей постепенно сможете осмысленно переходить к более сложным.
С наскоку не получится.

Например:
1) Научиться вывести текст и значение переменной на ЖКИ, например, типа такого, "U=456", где 456 - не строка, а значение целочисленной переменной.
2) Научиться использовать АЦП и сделать простейший вольтметр, который может померить напряжение пальчиковой батарейки и вывести напряжение в кодах, полученных от АЦП на первой строке и пересчитанное в милливольты - во второй строке.
3) У Вас кнопки сделаны на основе резисторного делителя.
Подключите их к входу, на котором измеряли напряжение в предыдущем варианте.
Включите схему и понажимайте на кнопки - увидите, что каждой из них соответствует напряжение.
4) Сделайте программу распознавания какая кнопка нажата. Принцип простой - если напряжение меньше, чем U2, но больше чем U1, значит, нажата кнопка SB1. Для каждой из кнопок эти два напряжения будут своими.

Чтобы осмысленно понимать, что происходит при такой схеме подключения кнопок, надо разобраться что такое делитель напряжения.

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

Если это проделаете, можно двигаться дальше.
Go to the top of the page
 
+Quote Post
Дмитрий(846)
сообщение Mar 8 2013, 15:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894



Код
/********************************************************************************
***************
Project : System Sound
Version : 0.1beta
Start Date    : 5.03.2013
Complite Date : 8.03.2013
Author  : Oberemok D.M. and kovigor
Company : Home
Comments: Пpoeкт шecтикaнaльнoгo peгyлятopa гpoмкocти и ceлeктopa вxoдoв нa      
          микpocxeмax PT2322 и PT2323
            
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
********************************************************************************
*****************/
#include <mega16.h> //библиотека для работы с ATmega16
#include <i2c.h>               //Подключение библиотеки i2c
#include <lcd.h>               //Подключение библиотеки LCD
#include <stdio.h>
#include <delay.h>             //Подключение библиотеки задержки
//программирование микроконтроллеров AVR на Си - осваиваем АЦП
#include <ioavr.h>             //для кнопок
#include <intrinsics.h>        //для кнопок

#asm
   .equ __lcd_port=0x1B;PORTA  // Указываем расположение LCD
   .equ __i2c_port=0x15;PORTC   //указываем порт i2c
   .equ __sda_bit=1            //ножка SDA на 23 PIN PDIP
   .equ __scl_bit=0            //ножка SCL на 23 PIN PDIP    
#endasm  

//Физические кнопки
#define KEY___Standby   1
#define KEY___SELECT    2
#define KEY___2_1       3
#define KEY___5_1       4
#define KEY___AC-3      5
// Для удобства пины ввода-вывода сопоставляем с символическими именами - куда что подключено по схеме

#asm("sei")     // бесконечный цикл
//макрос для запуска преобразования
#define StartConvAdc()  ADCSRA |= (1<<ADSC)

void skane_key(void)
{
//ион - напряжение питания, выравнивание влево, нулевой канал
ADMUX = (0<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0);
//вкл. ацп, режим одиночного преобр., разрешение прерывания,частота преобр. = FCPU/128
ADCSRA = (1<<ADEN)|(0<<ADSC)|(0<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

__enable_interrupt();
StartConvAdc();
  while(1)
  {
    //какой-нибудь код
  }
  return 0;
}


//обработчик прерывания АЦП
#pragma vector=ADC_vect
__interrupt void adc_my(void)
{
   unsigned char AdcBuf = ADCH;

  //какой-нибудь код
  StartConvAdc();
}  

void main(void)
{
lcd_init(16);
PORTA=0x00; //Выставляем все выходы PORTA на ноль
DDRA=0x00;  //Выставляем все выходы PORTA как входы
{
    lcd_init(16);                 //Обнаружение LCD
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("System Sound");    //выводим
    lcd_gotoxy(0,1);              //указываю место последующего вывода текста
    lcd_putsf("Downloaded");       //выводим
    delay_ms(1500);                //задержка
    lcd_clear();                   //Очистить LCD

for (;;)
{
if(!PINA.3 > 0)  //если кнопка нажата
    {              
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("On");    //выводим
    }
else
    {
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("Off");    //выводим    
    }  
}
}
}//Main


в чем проблема не компилирует
ошибка
Error: System Sound.c(103): no matching #endif
Прикрепленные файлы
Прикрепленный файл  System_Sound.rar ( 91.98 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Mar 8 2013, 15:51
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Этот код вызывает сомнения, так как не находится внутри какой-либо функции(особенно #asm("sei")):
Код
/********************************************************************************

#include <mega16.h> //библиотека для работы с ATmega16
#include <i2c.h>               //Подключение библиотеки i2c
#include <lcd.h>               //Подключение библиотеки LCD
#include <stdio.h>
#include <delay.h>             //Подключение библиотеки задержки
//программирование микроконтроллеров AVR на Си - осваиваем АЦП
#include <ioavr.h>             //для кнопок
#include <intrinsics.h>        //для кнопок

#asm
   .equ __lcd_port=0x1B;PORTA  // Указываем расположение LCD
   .equ __i2c_port=0x15;PORTC   //указываем порт i2c
   .equ __sda_bit=1            //ножка SDA на 23 PIN PDIP
   .equ __scl_bit=0            //ножка SCL на 23 PIN PDIP    
#endasm  

//Физические кнопки
#define KEY___Standby   1
#define KEY___SELECT    2
#define KEY___2_1       3
#define KEY___5_1       4
#define KEY___AC-3      5
// Для удобства пины ввода-вывода сопоставляем с символическими именами - куда что подключено по схеме

#asm("sei")     // бесконечный цикл


А этот обработчик не похож на Codevision-ский:

Код
#pragma vector=ADC_vect
__interrupt void adc_my(void)

Так в ИАР АВР пишут, но может что поменялось в CV?
Go to the top of the page
 
+Quote Post
Дмитрий(846)
сообщение Mar 8 2013, 16:24
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 45
Регистрация: 4-03-13
Из: Украина / Харьков
Пользователь №: 75 894



Код
/********************************************************************************
***************
Project : System Sound
Version : 0.1beta
Start Date    : 5.03.2013
Complite Date : 8.03.2013
Author  : Oberemok D.M. and kovigor
Company : Home
Comments: Пpoeкт шecтикaнaльнoгo peгyлятopa гpoмкocти и ceлeктopa вxoдoв нa      
          микpocxeмax PT2322 и PT2323
            
Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8,000000 MHz
********************************************************************************
*****************/
#include <mega16.h> //библиотека для работы с ATmega16
#include <i2c.h>               //Подключение библиотеки i2c
#include <lcd.h>               //Подключение библиотеки LCD
#include <stdio.h>
#include <delay.h>             //Подключение библиотеки задержки
//программирование микроконтроллеров AVR на Си - осваиваем АЦП
#include <ioavr.h>             //для кнопок
#include <intrinsics.h>        //для кнопок

#asm
   .equ __lcd_port=0x1B;PORTA  // Указываем расположение LCD
   .equ __i2c_port=0x15;PORTC   //указываем порт i2c
   .equ __sda_bit=1            //ножка SDA на 23 PIN PDIP
   .equ __scl_bit=0            //ножка SCL на 23 PIN PDIP    
#endasm  
// Для удобства пины ввода-вывода сопоставляем с символическими именами - куда что подключено по схеме
//макрос для запуска преобразования
#define StartConvAdc() ADCSRA |= (1<<ADSC)
//Физические кнопки
#define KEY___Standby   0
#define KEY___SELECT    1
#define KEY___2_1       2
#define KEY___5_1       3
#define KEY___AC_3      4

//кнопочный буфер
volatile unsigned char KeyBuf = 0;

void skane_key(void)
{
  unsigned char tmp;
  
  //настраиваем порты
  DDRC = 0xff;
  PORTC = 0xff;

  //инициализируем АЦП
  //ион - напряжение питания, выравнивание влево, нулевой канал
  ADMUX = (0<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(0<<MUX3)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0);
  //вкл. ацп, режим одиночного преобразования, разрешение прерывания, частота преобр. = FCPU/128
  ADCSRA = (1<<ADEN)|(0<<ADSC)|(0<<ADATE)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);

  //разрешаем прерывания и запускаем преобразование
  __enable_interrupt();
    StartConvAdc();

  //основной цикл программы - опрос кнопочного буфера
  while(1)
  {
    tmp = KeyBuf;
    if (tmp)
    {
      tmp--;
      PORTC = ~(1<<tmp);
    }
    else
      PORTC = 0xff;
  }
  return 0;
}


#pragma vector=ADC_vect
__interrupt void adc_my(void)
{
  //считываем старший регистр АЦП
  unsigned char AdcBuf = ADCH;
  
  //опеределяем в какой диапазон он попал
  if (AdcBuf > 240)
    KeyBuf = KEY___AC_3;
  else if (AdcBuf > 180)
    KeyBuf = KEY___SELECT;
  else if (AdcBuf > 120)
    KeyBuf = KEY___2_1;
  else if (AdcBuf > 50)
    KeyBuf = KEY___5_1;
  else
    KeyBuf = KEY___Standby;  
    
  //защита от дребезга и не только. если нажата какая-нибудь кнопка
  //сравниваем совпадают ли текущее состояние и предыдущее
  //если совпадают - проверяем счетчик comp, если нет обнуляем его
  //кнопка считается нажатой если она удерживается в течении 100
  //преобразований АЦП
  if (Key)
  {
    if (Key == LastState)
    {
      if (comp > 100)
        KeyBuf = Key;      
      else
        comp++;
    }
    else
    {
      LastState = Key;
      comp = 0;
    }
  }
  else
  {
    comp = 0;
    KeyBuf = KEY___Standby;
    LastState = KEY___Standby;
  }  
  //запускаем преобразование и выходим
  StartConvAdc();
}





























  

void main(void)
{
lcd_init(16);
PORTA=0x00; //Выставляем все выходы PORTA на ноль
DDRA=0x00;  //Выставляем все выходы PORTA как входы
{
    lcd_init(16);                 //Обнаружение LCD
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("System Sound");    //выводим
    lcd_gotoxy(0,1);              //указываю место последующего вывода текста
    lcd_putsf("Downloaded");       //выводим
    delay_ms(1500);                //задержка
    lcd_clear();                   //Очистить LCD

for (;;)
{
if(!PINA.3 > 0)  //если кнопка нажата
    {              
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("On");    //выводим
    }
else
    {
    lcd_clear();                  //Очистить LCD
    lcd_gotoxy(0,0);              //указываю место последующего вывода текста
    lcd_putsf("Off");    //выводим    
    }  
}
}
}//Main

тоже самое

Сообщение отредактировал Дмитрий(846) - Mar 8 2013, 16:25
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Дмитрий(846)   ATmega16 + PT2322 + PT2323   Mar 4 2013, 21:59
- - kovigor   Цитата(Дмитрий(846) @ Mar 5 2013, 01...   Mar 4 2013, 22:26
|- - Дмитрий(846)   Спасибо что отозвался помочь!!! Это н...   Mar 5 2013, 06:42
|- - kovigor   Цитата(Дмитрий(846) @ Mar 5 2013, 10...   Mar 5 2013, 09:23
|- - Дмитрий(846)   Цитата(kovigor @ Mar 5 2013, 11:23) ОК, ж...   Mar 5 2013, 17:19
|- - kovigor   Цитата(Дмитрий(846) @ Mar 5 2013, 20...   Mar 5 2013, 19:03
|- - Дмитрий(846)   Ну а как реализовать пять кнопок??? на ноге 37?? к...   Mar 5 2013, 19:55
|- - kovigor   Цитата(Дмитрий(846) @ Mar 5 2013, 23...   Mar 5 2013, 21:36
|- - Дмитрий(846)   Вот, а вообще я ж печатку выложил   Mar 5 2013, 22:27
|- - kovigor   Цитата(Дмитрий(846) @ Mar 6 2013, 01...   Mar 5 2013, 22:33
|- - Дмитрий(846)   да это понятно, да там 4.7 кОм как в моем коде это...   Mar 6 2013, 13:20
|- - kovigor   Цитата(Дмитрий(846) @ Mar 6 2013, 17...   Mar 6 2013, 14:10
|- - Дмитрий(846)   Вообще ничего не понял.   Mar 6 2013, 14:46
|- - kovigor   Цитата(Дмитрий(846) @ Mar 6 2013, 18...   Mar 6 2013, 14:53
|- - _Артём_   Цитата(Дмитрий(846) @ Mar 8 2013, 18...   Mar 8 2013, 16:41
|- - Дмитрий(846)   Помогите поправить синтаксис. При выводе Volume на...   Mar 12 2013, 16:20
|- - kovigor   Цитата(Дмитрий(846) @ Mar 12 2013, 20...   Mar 12 2013, 17:13
|- - Дмитрий(846)   За распознавание энкодера не понял зачем там defau...   Mar 12 2013, 19:03
|- - kovigor   Цитата(Дмитрий(846) @ Mar 12 2013, 23...   Mar 12 2013, 19:34
|- - Дмитрий(846)   Цитата(kovigor @ Mar 12 2013, 21:34) Мало...   Mar 12 2013, 19:58
|- - kovigor   Цитата(Дмитрий(846) @ Mar 12 2013, 22...   Mar 12 2013, 20:04
|- - Дмитрий(846)   Спасибо реализовал break, а там посмотрим. Посмотр...   Mar 12 2013, 20:14
|- - kovigor   Цитата(Дмитрий(846) @ Mar 13 2013, 00...   Mar 12 2013, 20:27
|- - Дмитрий(846)   Цитата(kovigor @ Mar 12 2013, 22:27) Код ...   Mar 12 2013, 20:31
|- - kovigor   Цитата(Дмитрий(846) @ Mar 13 2013, 00...   Mar 12 2013, 20:36
|- - Дмитрий(846)   ("state machine") - вообще не понимаю...   Mar 13 2013, 17:10
|- - kovigor   Цитата(Дмитрий(846) @ Mar 13 2013, 20...   Mar 13 2013, 17:29
|- - Дмитрий(846)   Честно говоря я уже запутанный. Я понял что ничег...   Mar 13 2013, 18:33
|- - kovigor   Цитата(Дмитрий(846) @ Mar 13 2013, 22...   Mar 13 2013, 18:55
|- - Дмитрий(846)   Но зачем? Ведь есть уже готовое, осталось только п...   Mar 13 2013, 19:17
|- - kovigor   Цитата(Дмитрий(846) @ Mar 13 2013, 23...   Mar 13 2013, 22:52
|- - Дмитрий(846)   Цитата(kovigor @ Mar 14 2013, 00:52) Да н...   Mar 14 2013, 18:59
- - XVR   Во первых маловат массив text (и пишут в него из п...   Mar 15 2013, 07:18
|- - Дмитрий(846)   Цитата(XVR @ Mar 15 2013, 09:18) Во первы...   Mar 15 2013, 17:19
|- - Дмитрий(846)   Подскажите после нажатия кнопки на пульте Power, а...   Mar 15 2013, 22:18
|- - Дмитрий(846)   Подскажите значения, не могу рассчитать значения д...   Mar 18 2013, 14:19
|- - muravei   Цитата(Дмитрий(846) @ Mar 18 2013, 17...   Mar 19 2013, 08:24
- - artkam   Приведите, пожалуйста, схему...   Mar 18 2013, 18:35
|- - Дмитрий(846)   Спасибо за помощь   Mar 18 2013, 21:18
- - artkam   Как-то уж слишком мудрено у Вас... Предлагаю приве...   Mar 19 2013, 14:21
|- - Дмитрий(846)   Цитата(artkam @ Mar 19 2013, 16:21) Как-т...   Mar 19 2013, 15:12
|- - kovigor   Цитата(Дмитрий(846) @ Mar 19 2013, 18...   Mar 19 2013, 15:46
|- - Дмитрий(846)   Цитата(kovigor @ Mar 19 2013, 17:46) Для ...   Mar 19 2013, 17:41
|- - kovigor   Цитата(Дмитрий(846) @ Mar 19 2013, 21...   Mar 19 2013, 18:05
|- - Дмитрий(846)   Очень благодарен за помощь. Но это я понимаю. Но м...   Mar 19 2013, 20:24
- - artkam   CODEvoid Tone_Controll(void) {...   Mar 19 2013, 21:50
|- - Дмитрий(846)   Да писал сам.!!! Есть замечания, подпр...   Mar 20 2013, 10:34
|- - Дмитрий(846)   Решил попробовать так, но звук не меняется Код#d...   Mar 20 2013, 20:07
|- - Дмитрий(846)   Подсказали через массив функций бахнуть, а результ...   Mar 21 2013, 18:09
- - artkam   В приложенном документе подробно расписана процеду...   Mar 21 2013, 18:22
|- - Дмитрий(846)   Цитата(artkam @ Mar 21 2013, 20:22) В при...   Mar 21 2013, 18:31
- - artkam   Попробуйте, в качестве эксперимента, в функции заг...   Mar 21 2013, 19:38
|- - Дмитрий(846)   Пробовал, но я писал только CODE i2c_start();...   Mar 21 2013, 19:46
- - artkam   Вот здесь: unsigned char Array2[][16] = {"-1...   Mar 21 2013, 19:55
|- - Дмитрий(846)   Вы имеете ввиду Код i2c_start(); i2c...   Mar 21 2013, 19:57
|- - artkam   Цитата(Дмитрий(846) @ Mar 22 2013, 00...   Mar 21 2013, 20:38
|- - Дмитрий(846)   Цитата(artkam @ Mar 21 2013, 22:38) Присм...   Mar 21 2013, 20:42
|- - Дмитрий(846)   Попробовал звук не меняется.   Mar 23 2013, 16:55
- - artkam   Я что-то не понял... Вы предложенный мной исходник...   Mar 21 2013, 20:03
|- - Дмитрий(846)   Я в каждом после выкладываю свежий, с исправлением...   Mar 21 2013, 20:04
- - artkam   Так в нем нет исправлений, которые внес я... Повер...   Mar 21 2013, 20:06
|- - Дмитрий(846)   Цитата(artkam @ Mar 21 2013, 22:06) Так в...   Mar 21 2013, 20:16
- - artkam   Прикрепляю снова...   Mar 21 2013, 20:19
|- - Дмитрий(846)   Вы имеете ввиду КодКод i2c_start(); i2c...   Mar 21 2013, 20:35
- - artkam   А при нажатии на кнопку Mute, что-то происходит?   Mar 23 2013, 17:18
|- - Дмитрий(846)   Цитата(artkam @ Mar 23 2013, 19:18) А при...   Mar 23 2013, 18:00
- - artkam   Внес изменения в Function_3D(). Обратите внимание...   Mar 23 2013, 18:47
|- - Дмитрий(846)   Цитата(artkam @ Mar 23 2013, 20:47) Внес ...   Mar 23 2013, 20:12
- - artkam   Темброблок-то ожил??   Mar 23 2013, 20:14
|- - Дмитрий(846)   Да, но где то блокируются два канала F.R. и F.L.   Mar 23 2013, 20:21
- - artkam   У вас ошибка в Load_Options()... Сами прочитаете д...   Mar 23 2013, 20:25
|- - Дмитрий(846)   Цитата(artkam @ Mar 23 2013, 22:25) У вас...   Mar 23 2013, 20:32
- - artkam   Внимание надо обратить на раздел "даташита...   Mar 23 2013, 20:38
|- - Дмитрий(846)   Цитата(artkam @ Mar 23 2013, 22:38) Внима...   Mar 23 2013, 20:54
- - artkam   Так пробуйте уже записать прошивку в процессор, же...   Mar 23 2013, 20:58
|- - Дмитрий(846)   Цитата(artkam @ Mar 23 2013, 22:58) Так п...   Mar 23 2013, 21:13
|- - Дмитрий(846)   Свежий исходник   Mar 23 2013, 22:50
|- - Дмитрий(846)   в принципе разобрался и сам с регулировкой кроме о...   Mar 24 2013, 10:12
- - Дмитрий(846)   Всем огромное спасибо, пока во всем практически ра...   Oct 20 2013, 18:34


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

 


RSS Текстовая версия Сейчас: 30th July 2025 - 09:48
Рейтинг@Mail.ru


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