Например TDA7294

Форум РадиоКот • Просмотр темы - Работа с SD/MMC флеш картой Mega128+Code Vision AVR
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Пт авг 01, 2014 19:53:57

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт ноя 10, 2011 20:25:59 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
Тут для разнообразия задумал сделать MP3 плеер на ATMega128 и внешнем кодеке. Для начала решил покорить Sd карту.. Долго мучался с встроенной в CVAVR библиотекой в итоге чуть погуглив наткнулся http://my-avr.at.ua/forum/3-74-2 на библиотеку для SD написанную под cvavr (исходники там тоже есть). Чуток помучавшись все заработало, но остался один момент, как считать имеющиеся в корне флешки файлы в массив, чтобы занать какие файлы присутвуют на флешке.

Изображение

В Hex редакторе открываю образ флешки и вижу все имена файлов хранятся в одном месте оно начинается с метки тома TEST_FAT искать файлы например по расширению до конца записи..

Изображение

, по идее все можно считать, но как указать что читать надо с N -ного адреса непойму.. Может кто-то имел уже дело с флешками :)) Исходник + схему в Proteus для симуляции прилагаю.

Еще момент, если кому-то захочется закинуть в образ флешки свои файлы или вытащить уже имеющиеся на ней файлы то понадобится прога WinImage. Просто перетягиваете файлы в окно программы с открытым образом флешки :))
Изображение


Вложения:
Комментарий к файлу: Исходник + Proteus
Mega128.rar [338.36 KiB]
Скачиваний: 276
Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Пт ноя 11, 2011 09:38:18 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 27, 2007 12:32:06
Сообщений: 1132
Откуда: Tashkent
Рейтинг сообщения: 0
servo писал(а):
как считать имеющиеся в корне флешки файлы в массив, чтобы занать какие файлы присутвуют на флешке.


Судя по ответу с вышекуказанного форума - никак, нет функции поиска файлов в той библиотеке. Надо ее ручками дописывать.

servo писал(а):
по идее все можно считать, но как указать что читать надо с N -ного адреса непойму..


FAT16, если я не ошибаюсь, позволяет иметь всего 512 записей(файлов и каталогов) в каждой дирректории. При использовании только корневой дирректории задача упрощается т.к. не надо при поиске заглядывать в подкаталоги. Так вот, стартовый адрес корневой дирректории всегда известен, длина одной записи фиксирована(для имени формата 8.3), максимальное кол-во записей = 512. Поэтому вам надо считать аттрибут файла/каталога, затем, если файл нас не устроил, увеличить адрес следующего чтения на размер записи.

Обратите внимание на функцию:
Код:
byte fat_findfile(flash byte *name,byte mattrib,fff *info) { //Поиск записи в корневой директории

Там есть все необходимые элементы для реализации вашей задачи(нужно только чуток переписать:).

В одном из своих проектов я тоже писал ФАТ с поиском фалов по маске в имени и/или расширении.
Выглядело примерно так:
Код:
flash char all_files[11]={'?','?','?','?','?','?','?','?','I','L','D'};//искать все файлы с маской ILD

entry_number=0;                             
while(entry_number<512)//play all *.ILD files on SDC
        {
        open_result=open_file(all_files,entry_number);//пытаемся открыть файл с начальным номером текущей записи [i]entry_number[/i] и указанным именем [i]all_files[/i]
        entry_number=(open_result->entry_number)+1;//увеличим счетчик записи
        if(open_result->file_status)//если файл успешно открыт, то приступим к его чтению
                {
                //здесь работаем с самим файлом               
                };
        };


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Пт ноя 11, 2011 20:42:37 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
Я вообще подумал что можно например напрямую читать флешку без Fat размещения, просто побайтно и тупо найти название тома а за ним по расширению найти файлы и скопировать их имена.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 12, 2011 01:03:09 
Опытный кот
Аватар пользователя

Зарегистрирован: Сб фев 27, 2010 22:45:37
Сообщений: 782
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Что-то я не понял, как это возможно корректно без разбора записей FAT сделать.
Если речь о том, что не надо вычитывать адреса файлов, то да. Ещё надо помнить, что удалённые файлы там отмечаются какой-то меткой в первом символе - их выводить не надо.

_________________
Сделать хотел грозу, а получил КоЗу


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 12, 2011 02:20:46 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
Coolish писал(а):
Что-то я не понял, как это возможно корректно без разбора записей FAT сделать.
Если речь о том, что не надо вычитывать адреса файлов, то да. Ещё надо помнить, что удалённые файлы там отмечаются какой-то меткой в первом символе - их выводить не надо.


Да я уже поэксперементировал с hex редактором , получается когда файл удаляеш то первый байт его имени метится байтом 0xE5, этот файл весит в списке до тех пор пока на флешку не будет записан новый файл, после этого я как понял происходит обновление списка и то что было помечено 0xE5 удаляется из списка.

Ну утром займусь, может и получится чего сделать :)


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 12, 2011 09:09:11 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 27, 2007 12:32:06
Сообщений: 1132
Откуда: Tashkent
Рейтинг сообщения: 0
servo писал(а):
Да я уже поэксперементировал с hex редактором , получается когда файл удаляеш то первый байт его имени метится байтом 0xE5, этот файл весит в списке до тех пор пока на

Лучше бы почитали спецификацию на FAT. Помойму на электрониксе ( electronix.ru ) была даж переведенная на русский язык версия. Все или по крйней мере большинство вопросов сами отпадут.
Конкретно в вашем случае надо посчитать всего-то 5 - 6 смещений.

Up:
вот спецификация, правда на английском. Всего 30 страниц...


Вложения:
FAT32 fatgen103.rar [47.71 KiB]
Скачиваний: 134
Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Вт ноя 15, 2011 13:41:14 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
uk8amk писал(а):
вот спецификация, правда на английском. Всего 30 страниц...

Спасибо , почитал ! но пока не получается считать имена файлов.. Можете навести на истенный путь :)) куском кода :))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Ср ноя 16, 2011 10:35:48 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 27, 2007 12:32:06
Сообщений: 1132
Откуда: Tashkent
Рейтинг сообщения: 0
Честно говоря я сам не реализовывал вывод имен файлов, мне нужно было просто подряд читать данные из существующих файлов на флешке. Поэтому в здесь готовый код показать не могу.

См. стр.23 из спецификации. Там показана структура одной записи. Памяти в М128 достаточно поэтому можно не парится и сразу организовать структуру в ОЗУ и заполнять ее байтами из дирректории.

Вот мой исходник, может чем поможет.
См. ф-цию
Код:
struct FILE_PARAM 
*find_file(flash unsigned char *name,unsigned int entry_number)

Она ищет файл в корневой дирректории по имени и возвращает номер записи и параметры файла.
А вот здесь происходит сравнение текущего имени файла с искомым:
Код:
search_result=fstrcmp(tmp,name,0,11);


Код немного корявый - вылизывался под М48.


Вложения:
fat.rar [3.19 KiB]
Скачиваний: 121
Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Пт ноя 18, 2011 13:11:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
uk8amk - спасибо ! буду изучать..

вообще думаю нужна просто функция типа
char sd_readbyte(адрес){

.....
return ch;
};
Далее несложно уже будет найти метку тома и считать имена файлов,
но пока правильно не получается сделать.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 19, 2011 08:51:11 
Сверлит текстолит когтями

Зарегистрирован: Вт ноя 27, 2007 12:32:06
Сообщений: 1132
Откуда: Tashkent
Рейтинг сообщения: 0
servo писал(а):
вообще думаю нужна просто функция типаchar sd_readbyte(адрес){

Это не совсем правильная позиция.
Наверное вы уже слышали, что SD(MMC, SDHC?) имеют внутреннюю организацию сектора 512 байт(или 1024, 2048). Так вот, вы можете только начать чтение с нулевого смещения байта внутри одного сектора и закончить либо перечитав все 512 байт, либо использовать инструкции чтения блока неопределенной длины. Допустим желаемые байты находятся по смещению +100, надо прочитать 10 байт. Тогда:
1.Выставляем адрес сектора(+0, +512, +1024 и т.д.).
2.Считываем 100 байт, но на них внимание не обращаем т.к. они не нужны.
3.Считываем нужный +101-й байт.
4.Заверщаем операцию чтения.
5.Повторяем все почти тоже самое но для смещения +102.
Чувствуете разницу? Вместо 10+100 байт вам придется прочитать примерно 1 килобайт. Т.к. нужные поля данных почти всегда имеют длину >1 и <256 байт, то либо сразу буферизуют весь сектор в ОЗУ контроллера, либо считывают всю цепочку.

Дам, посмотрел сейчас в тот код , конкретнее файл _sd.c. Нет четкого разделения уровня драйвера ввода-вывода карты памяти и уровня фат...
Вот функция, кот я когда-то писал для доступа к данным по опр. адресу:
Код:
// Read number bytes from sector // 
void read_partial_sector(
        unsigned long adress, //sector adress
        unsigned char *destination,//destination object - char array
        unsigned int offset,//offset in bytes from current sector position; 0=no offset
        unsigned char len)//for faster perfomance size reduced to 'char'
{
        unsigned int i;   
       
        end_read();//stop read if required
        send_CMD(CMD18,adress);//send adress of new sector for multiple read
        wait_data_ready();
        _SRF=1;//serial read opened       
        while(offset)
                {
                --offset;
                //spi(0xFF);//go to the required byte position in sector
                spi_tx_ff;
                };
        for(i=0;i<len;i++)
                {
                /////Read byte from SPI/////
                SPDR = 0xFF;//start
                while(!(SPSR & (1<<SPIF)));//wait until byte will be read
                destination[i]=SPDR;
                //destination[i]=spi(0xFF);//fill destination object
                }
}

Она получает адрес сектора и смещение байтов от начала сектора. Затем она заполняет массив указанной длины.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 19, 2011 11:39:47 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
uk8amk спасибо !

уже начинаю понимать суть работы с sd\mmc картой..
вроде получается.
как будет все разлизано.. выложу исходник.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Сб ноя 26, 2011 07:32:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс окт 30, 2011 23:52:51
Сообщений: 80
Рейтинг сообщения: 0
Наткнулся на проект MP3 плееара.. удивило то чно сделан на 8-ой меге.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Ср окт 03, 2012 22:20:29 
Грызет канифоль

Зарегистрирован: Сб янв 08, 2011 14:48:41
Сообщений: 294
Рейтинг сообщения: 0
Подскажите,вот задумал попробывать читать ММС и выводить на динамик.Поскольку с ФАТ ксожалению еще неразобрался(думаю PETIT или FS изучить библеотеки что лучше?),поэтому читаю непрерывными блоками.Скинул на флеху .wav файл начал выводить с MMC на ШИМ и динамик- тупо трещание,иногда смена тонов( Как подсчитать задержку между выводом звука на ШИМ? Частота 8МГц,и при разных качествах музыки нужно другую задержку(красным цветом в коде)?
30 Кбит в сек
задежка равна = 3750(пиревод в байты) /8000000 =468 микро сек. так?

считываем с mmc;
цикл(1)
выводим цифру в ШИМ ;
задержка;
возвращаемся в ЦИКЛ;




#include <stdio.h>
#include <mega48.h>
#include <delay.h>
#include <string.h>
#include <io.h>

#define data(x) SPDR=x; while (!( SPSR&(1<<7)));

int i,temp;
char array[200] ;
void main(void) {

DDRB=0b11101111;

//настройка ШИМ


TCCR1A=0b10000001;
TCCR1B=0b00001001;
TIMSK1=0b01000000;

// 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
UCSR0A=0x00;
UCSR0B=0x18;
UCSR0C=0x06;
UBRR0H=0x00;
UBRR0L=0x33;




//настройка SPI
SPCR=0b01010011;
SPSR=1;


//подаем 74 импульса
PORTB.2=1;
delay_ms(10);

for(i=0;i<10;i++)
{

data(0xff)
}
PORTB.2=0;


printf(" --------------MMC------------- \r\n");

//CMD0


data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);


while (temp!=0x01)
{
data(0xff);
temp= SPDR;
if (i>10)
{data(0x40);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
i=0;
}
i++;

}
printf("CMD0 proshlo uspeshno temp=%d\n\r",temp,"\r\n");

//CMD1
data(0x41);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
while (temp!=0x00)
{data(0xff);
temp= SPDR;
if (i>20)
{data(0x41);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
i=0;
}
i++;
}

printf("CMD1 proshlo uspeshno temp=%d\n\r",temp,"\r\n");
delay_ms(20);
printf("CID chitaet \r\n");
//CID регистр чтение байтов
data(0x4A);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
for (i=0;i<16;i++)
{
data(0xff);
array[i]=SPDR ;
}

for (i=0;i<16;i++)
{
printf(" %d",array[i]," ") ;
}
printf("\r\n") ;

printf("CSD chitaet \r\n");
//CID регистр чтение байтов
data(0x4A);
data(0x00);
data(0x00);
data(0x00);
data(0x00);
data(0x95);
for (i=0;i<16;i++)
{
data(0xff);
array[i]=SPDR ;
}
for (i=0;i<16;i++)
{
printf(" %d",array[i]," ") ;
}
printf("\r\n") ;



//CMD17 чтение байтов
data(0x52);
data(0x00);
data(0x04);
data(0xfa);
data(0x00);
data(0x95);
i=0;
while (temp!=0xfe)
{ data(0xff);
temp= SPDR;
}
printf("CMD17 proshlo uspeshno temp=%d\n\r",temp,"\r\n");
while(1){

for (i=0;i<200;i++) //чтение 512 кб
{
data(0xff);
array[i]=SPDR ;
}

for (i=0;i<200;i++)
{
if (array[i]!=0x00)
{ OCR1AL=(array[i]);
delay_us(29);


}



}

}
}


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 01:04:06 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт авг 27, 2010 06:57:06
Сообщений: 2481
Откуда: Тюмень
Рейтинг сообщения: 0
Что за глупости?Нужно сделать задержку таймером и менять значение шим в прерывании по переполнению таймера.
Задержка считается очень просто- смотрим частоту дискретизации звука например "20кГц ,стерео, 128кбит/сек "
Тут 20кГц это и есть частота дискретизации так вот нужно каждую секунду выводить 20тыс чисел.Соответственно шим должен успевать менять свое значение и как следствие как минимум на величину разрядности звука нужно умножить частоту дискретизации.Пусть это будет 8 бит, значит 256 ступеней.Нужно умножить 256 на 20кГц и вот с такой скоростью нужно чтобы были прерывания по переполнению.

Звук в общем то можно с любым качеством записать.Даже стандартный инструмент Хр звукозапись позволяет изменять качество.
Ну или в других редакторах можно изменить готовые звуки.

Разрядность определяется 128000бит/сек качества делим на 20000 Гц дискретизации получаем где то 6,4 бит.
Цифры взяты из головы, в конкретном случае звуков самостоятельно можно посчитать.


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 10:35:26 
Грызет канифоль

Зарегистрирован: Сб янв 08, 2011 14:48:41
Сообщений: 294
Рейтинг сообщения: 0
vitalik_1984 писал(а):
Что за глупости?Нужно сделать задержку таймером и менять значение шим в прерывании по переполнению таймера.
Задержка считается очень просто- смотрим частоту дискретизации звука например "20кГц ,стерео, 128кбит/сек "
Тут 20кГц это и есть частота дискретизации так вот нужно каждую секунду выводить 20тыс чисел.

ну это я имел виду

vitalik_1984 писал(а):
Соответственно шим должен успевать менять свое значение и как следствие как минимум на величину разрядности звука нужно умножить частоту дискретизации.Пусть это будет 8 бит, значит 256 ступеней.Нужно умножить 256 на 20кГц и вот с такой скоростью нужно чтобы были прерывания по переполнению.

вот тут я вообще непонял. Разрядность это изменение звука с 0 до 256,тоесть может быть любым числом,зачем умножать разряд на частоту?Я еще пойму чтобы сделать типа синусойды,сравнивать это значение со слудующим чтобы сделать плавный переход i++ если больше или i-- если меньше.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 11:58:33 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Пн июн 18, 2012 13:01:04
Сообщений: 588
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
спящий писал(а):
вот тут я вообще непонял. Разрядность это изменение звука с 0 до 256,тоесть может быть любым числом,зачем умножать разряд на частоту?Я еще пойму чтобы сделать типа синусойды,сравнивать это значение со слудующим чтобы сделать плавный переход i++ если больше или i-- если меньше.

В коде не надо ничего умножать, это нужно чтобы выяснить какое значение установить в OCRn таймера задающего дискретность и этот же таймер по прерыванию совпадения будет обновлять значение OCRa ШИМ таймера, шаг таймера задающего дискретность не должен быть меньше 256-ти машинных циклов, чтобы успевал обновляться OCR ШИМ таймера.
По-этому максимальная частота дискретизации для 8МГц при 8 бит качества звука будет:
8000000/2**8=31250Гц, в принципе для звука 22050Гц 8 бит вполне приемлемо.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 14:50:27 
Грызет канифоль

Зарегистрирован: Сб янв 08, 2011 14:48:41
Сообщений: 294
Рейтинг сообщения: 0
А воту меня непрограммируется контроллер с флехой микроСД,надо добавлять сопротивления последовательно с картой?
на счет воспроизведения звука сейчас осмыслю(почитаю и задам фопрос))),а качество звука и дискетизация не зависят друг от друга? чет мне кажется одно и тоже)


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 18:58:00 
Грызет канифоль

Зарегистрирован: Сб янв 08, 2011 14:48:41
Сообщений: 294
Рейтинг сообщения: 0
прочитав я понял,что дискретизация X(зависит с какой скоростью мы передаем на ШИМ),БИТ это цифра величина ЩИМа?)

тоесть
цикл:
читаем с флехи
OCR1AL=(array[i]); моя величина на ШИМ с флехи
delay_ms(1); моя дискретизация
назад в цикл



так же? при:
Частота дискретизации 8
Качество звука 32кБ/сек
размер 4бит = 2^4= 16(на шим число от 0 до 16)


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 21:05:44 
Поставщик валерьянки для Кота
Аватар пользователя

Зарегистрирован: Пт авг 27, 2010 06:57:06
Сообщений: 2481
Откуда: Тюмень
Рейтинг сообщения: 0
Делэй это для того,чтобы светодиодами моргать, а тут лучше использовать уже используемый таймер!


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: Работа с SD/MMC флеш картой Mega128+Code Vision AVR
СообщениеДобавлено: Чт окт 04, 2012 21:35:22 
Грызет канифоль

Зарегистрирован: Сб янв 08, 2011 14:48:41
Сообщений: 294
Рейтинг сообщения: 0
заменим delay на таймер,но смысл првильный?


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 30 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y