Например TDA7294

Форум РадиоКот • Просмотр темы - C для AVR -- пишем аккуратно.
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июн 24, 2025 08:52:57

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 112 ]    , , , 4, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:03:44 
Мудрый кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 93
Зарегистрирован: Ср сен 07, 2011 21:40:30
Сообщений: 1798
Рейтинг сообщения: 0
для IARа в документации все расписано. Для AVR в AN тоже все расписано. Т.е. учиться будем с чьих-то слов, вместо того, чтобы прочитать документацию? Тогда каждое слово будет откровением.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:16:51 
Родился
Аватар пользователя

Зарегистрирован: Пн апр 19, 2010 12:42:13
Сообщений: 14
Рейтинг сообщения: 0
Не пойму, о чем речь?

Вам лично не нужны откровения? Не читайте, у нас теперь свобода.
Вы беспокоитесь обо мне, чтобы у меня не выработалась дурная привычка? Могу Вас уверить, что я умею читать документацию. Читал ее с начала 80-х, преимущественно в оригинале. Так что, спасибо за заботу, но она излишня.
Или у Вас есть глубокое убеждение, что без вкуривания многотомных мануалов и апноутов путь в программирование ДОЛЖЕН быть закрыт? На чем основано такое убеждение? Моежет не отвечать, потом... сюрприз будет :)
Ну, подумать, что у Вас просто неприязнь к товарищу avreal или зависть к тому признанию, которое мы ему отдаем, я просто не смею.

А Вы никогда не пользовались подсказками от коллег для того, чтобы освоить новое? Можете себя вспомнить "в коротких штанишках" или уже на в силах?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:28:06 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
drvlas писал(а):
HHIMERA писал(а):
Ничего удивительного....
IAR уже давно перестал быть лидером... ...
Поэтому сравнения компиляторов и дают в результате +- лапоть...

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

Ну тогда ещё парочку... чтобы не искал... ))))))))
1. Использовать по минимуму уникальные особенности компилятора...
2. Избегать использования недокументированных особенностей компилятора...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:36:04 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
drvlas писал(а):
Ну, подумать, что у Вас просто неприязнь к товарищу avreal или зависть к тому признанию, которое мы ему отдаем, я просто не смею.

Если для одних он Божество, то для других он такой же, как и многие другие... так понятнее??? )))))
Цитата:
А Вы никогда не пользовались подсказками от коллег для того, чтобы освоить новое? Можете себя вспомнить "в коротких штанишках" или уже на в силах?

Но не за каждым же чихом... иногда и своими мозгами шевелить надо...
Понимаю, вам некогда... вам "нужно спасать мир"... но всё же...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
В продаже новые LED-драйверы XLC компании MEAN WELL с диммингом нового поколения

Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:51:03 
Родился
Аватар пользователя

Зарегистрирован: Пн апр 19, 2010 12:42:13
Сообщений: 14
Рейтинг сообщения: 0
HHIMERA писал(а):
1. Использовать по минимуму уникальные особенности компилятора...
2. Избегать использования недокументированных особенностей компилятора...

Ну, второе вытекает из первого. И вообще, очень общие рекомендации. Но - спасибо! Это значительно более конструктивно, чем следующий пост.

Но появление второго постинга как раз и отбивает у меня желание вникать в Ваши советы. Тем более, что Ваш стиль с этими 100500 скобками, вопросами, многоточиями не добавляет привлекательности Вашим желчным заметкам. Блондинистый стиль, ИМХО.
И спорить с Вами на данную тему я больше не буду. И так нафлудили мы тут предостаточно. Считайте, что мне нечего ответить на все, что Вы сейчас накатаете. Со скобочками :)

С уважением,
Юра Власенко
Киев


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 10:59:24 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
drvlas писал(а):
Но появление второго постинга как раз и отбивает у меня желание вникать в Ваши советы. Тем более, что Ваш стиль с этими 100500 скобками, вопросами, многоточиями не добавляет привлекательности Вашим желчным заметкам. Блондинистый стиль, ИМХО.

Ну... вы хоть какую-то пользу извлекли из моих постов... я из ваших - НОЛЬ!!!
Стиль комунечегосказатьнооченьхочется... ИМХО... ))))))))
Цитата:
И спорить с Вами на данную тему я больше не буду.

А и правильно... ваши знания вам не позволяют...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 13:18:20 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
drvlas писал(а):
Ваш стиль с этими 100500 скобками, вопросами, многоточиями не добавляет привлекательности Вашим желчным заметкам. Блондинистый стиль, ИМХО. ..... Считайте, что мне нечего ответить на все, что Вы сейчас накатаете. Со скобочками :)

С уважением,
Юра Власенко
Киев
Брат, не распаляйся, это бесполезно. Каждый ответ на сообщения некоторых, порождает бесполезную страницу, бесполезной перепалки. Просто помни что "Если оборачиваться на лай каждой собаки, то далеко не уйдеш....."


Последний раз редактировалось shads Вс сен 16, 2012 14:19:23, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 14:12:21 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
shads писал(а):
Брат, не распаляйся, это бесполезно.

Спасибо, не буду... :))
Лучше расскажи о результатах... прога то хоть как-то работает??? :))

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 14:39:48 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
HHIMERA писал(а):
shads писал(а):
Брат, не распаляйся, это бесполезно.

Спасибо, не буду... :))
Слушай, а ник ты себе подобрал в точку, не знаю что это означает, но думаю оно соответствует твоему стилю.

HHIMERA писал(а):
Лучше расскажи о результатах... прога то хоть как-то работает??? :))
А какое тебе дело до проги..... Во первых, ты ни капли не добавил в ее функциональность, во вторых, это же не та программа, не тот стиль программирования который бы был достоен твоего внимания, так что проходи мимо и кончай засирать ветку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Вс сен 16, 2012 14:56:48 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
shads писал(а):
А какое тебе дело до проги.....

Да никакого... результат был предсказуем заранее... только, зачем так нервничать???
"Отрицательный результат - это тоже результат." (С)

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Ср сен 19, 2012 22:41:42 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
avreal поясни пожалуйста, насчет применения static к функциям, народ чето разделился на за и против.
Какие могут быть сюрпризы если пихать статик неглядя (а смысл есть, многие убедились, да и я тоже)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Чт сен 20, 2012 00:29:29 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
Жуть.... Шо за срач в тематическом разделе? :shock:
А по существу - советы ТС дельные. Пригодятся многим. Бывают моменты, когда в ТЗ стоит мега 8 и как не крути,
а надо впихнуть в нее огромный функционал и бутлодер и при этом памяти мало. Сталкивался с этим на днях.
На АСМе не укладывался в сроки, на Си памяти не хватало для бутлодера. Причем выжал все соки с исходника, а код бутлодера не хотел никак сжиматься в 512 слов.
Советы тов. avreal оказались как раз в тему. Удалось ужать код на 24 байта и все влезло. :beer:
Компилятор нагло инлайнил одну из функций, не смотря на выставленную оптимизацию "ужать по самое нехочу"

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Чт сен 20, 2012 00:56:27 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Навеяло...

http://www.wasm.ru/article.php?article=onebyte

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Чт сен 20, 2012 10:39:22 
Друг Кота
Аватар пользователя

Карма: 25
Рейтинг сообщений: 99
Зарегистрирован: Вс янв 24, 2010 19:19:52
Сообщений: 4468
Откуда: Главный Улей России (Moscow)
Рейтинг сообщения: 0
:))) :))) :))) :)))

_________________
I am DX168B and this is my favourite forum on internet!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Пт сен 21, 2012 14:16:20 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 52
Зарегистрирован: Чт дек 31, 2009 19:27:45
Сообщений: 842
Откуда: Бровари, Україна
Рейтинг сообщения: 0
Опять добрался до интернета.

Как оказалось, в программе «работает всё, кроме длинной вспышки при занесении кода».
Косяк был в простой функции мигания светодиодом.

Сначала она писалась под аргумент -- число смен состояния светодиода, т.е. для одиночной вспышки нужно было передавать count = 2, для десяти вспышек 20. Так сама функция проще :-)

Потом я решил сделать более «естественный» параметр -- число вспышек, хоть это и увеличило код :-). Строку count = 2*count - 1; добавил, но при редактировании функция приняла вид:
Код:
static void blink_led(uint8_t tacks, uint8_t count)
{
    count = 2*count - 1;
    ON(LED);
    do {
        TOGGLE(LED);
        delay(tacks);
    } while(--count);
}
В результате чего первая (а для одиночной -- единственная) вспышка была в пару тактов контроллера.

А надо так:
Код:
static void blink_led(uint8_t tacks, uint8_t count)
{
    count = 2*count - 1;
    ON(LED);
    do {
        delay(tacks);
        TOGGLE(LED);
    } while(--count);
}

Очередной архив


Вложения:
mreceiver-20120919.7z [15.85 KiB]
Скачиваний: 315

_________________
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Пт сен 21, 2012 14:57:13 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 52
Зарегистрирован: Чт дек 31, 2009 19:27:45
Сообщений: 842
Откуда: Бровари, Україна
Рейтинг сообщения: 0
shads писал(а):
avreal поясни пожалуйста, насчет применения static к функциям, народ чето разделился на за и против.
Какие могут быть сюрпризы если пихать статик неглядя (а смысл есть, многие убедились, да и я тоже)
Ну разбуянились… По поводу затащить меня ещё на один форум, так это не в агитаторах дело.
Я просто (часто безуспешно) стараюсь сокращать время, потраченное на форумы. На сахаре, наверное, уже с год не показывался. Где уж ещё куда-то ввязываться.

Теперь по основному вопросу.
Давайте сначала определимся, что называть «бездумно натыкивать куда попало». Где граница «бездумности»? Может, она вовсе безгранична?
А то ведь и long для AVR «бездумно напихивать» вредно -- код сильно раздуется. И uint8_t или там unsigned char «бездумно напихивать» не дело, информация пропасть может. Если постараться, то и комментарий можно так впихнуть, что «неизвестно, чем аукнется» *)

Не «не глядя». Я четко ограничил область — функции, вызываемые только из той единицы трансляции (т.е. компилируемого файла со всеми его include), в которой они определены. Все внутренние, «служебные» функции модуля — первые кандидаты на static. Как кто-то привёл пример на том форуме — функция обмена одним битом в модуле поддержки 1-Wire. Применение static к таким функциям ничего не меняет в остальной программе.
Если же функция таки откуда-то ещё вызывается, то линкер ругнётся, программа не соберётся. Нужно будет подумать (во сюрприз!), почему это она вызывается, если начало казаться, что она внутренняя в модуле. И либо снять static, либо переопределить интерфейс к модулю.
В принципе, во включаемом файле могут быть и функции «с телами» и при включении в несколько других файлов вызываться они будут из разных единиц трансляции. Без static будет конфликт имён, линкер не даст собрать. Со static конфликта не будет, но это будут разые копии одной функции (на уровне объектного кода они будут иметь разные имена), что невыгодно по размеру.

Во вторых, пусть кто-то приведёт конкретный пример, когда применение static приведёт к «трудноуловимым глюкам» скомпилированной программы. Причём именно по вине слова static, а не по вине более ранних ошибок, заметённых под коврик отсутствием явного ограничения области видимости для функций, видимость которых и должна быть ограничена по сути проекта. А то сколько бы много я примеров не приводил — всегда можна будет сказать «а в x1 каком варианте при x2 каких условиях таки может x3 что получиться». А так — пусть приведут один пример.

С моей точки зрения, «не писать static, так как это неизвестно чем аукнется» — это не
    не писать бездумно static

а
    бездумно не писать static



*) Кстати, когда-то была интересная задачка — определить во время выполнения программы, была при компиляции включена поддержка вложенных комментариев или нет (борландовские компиляторы имели вредный ключик -C для разрешения вложенных комментариев). Моё решение
Код:
printf("Nested comments is %s\n", */*/**/"*/"/*"/**/ == '*' ? "OFF" : "ON"); 
Во… Судя по получившейся раскраске, в php тоже вложенные комментарии не допускаются :))

_________________
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Пт сен 21, 2012 15:21:29 
Опытный кот
Аватар пользователя

Карма: 7
Рейтинг сообщений: 52
Зарегистрирован: Чт дек 31, 2009 19:27:45
Сообщений: 842
Откуда: Бровари, Україна
Рейтинг сообщения: 0
p.s. А чего это на wasm.ru возле «Истории одного байта» стоит 2003 год?
Это ж максимум начало 2001-го. А то и гораздо раньше, просто в эху попало в 2001-ом (сам текст, содержание, к началу 90-ых относится).

Эх, сколько там в обсуждении знакомых имён…
И Валера Журило еще жив был, он осенью 2001-го от инфаркта умер… А летом мне, послеинфарктному, всё в метро место уступал…

_________________
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Пт сен 21, 2012 23:14:12 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
avreal писал(а):
С моей точки зрения, «не писать static, так как это неизвестно чем аукнется» — это не
    не писать бездумно static

а
бездумно не писать static

Бездумно и есть бездумно - это как на диахтунге... сначала, как обезьяны с гранатами, тыкали наперегонки static куда попало, а потом, почесав затылок... "а вдруг рванёт?"... :)))

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Пт сен 21, 2012 23:50:38 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
Насколько я понял из последнего пояснения avreal, static лепить к функции настолько же опасно как и хранить данные в unsigned char.....
Там тоже могут быть проблЭмы - информация пропасть может :)

А насчет обезьян..... они еще и с калаша хорошо стреляют http://www.youtube.com/watch?v=z6-hJlaZTRs


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: C для AVR -- пишем аккуратно.
СообщениеДобавлено: Сб сен 22, 2012 04:26:03 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
shads писал(а):
А насчет обезьян.....

Хорошо... назовём это стадным инстинктом... :)

Вот яркий пример... goto...
Сколько "ярких" эпитетов было сказано против его применения...
Здесь
http://forum.easyelectronics.ru/viewtop ... =4&t=11143
... и не только...

Заглянем в pff.c от Чена...
pf_read, pf_write и pf_lseek содержат goto...
Попробуйте обвинить Чена в незнании СИ... :)))

Ещё пример...
viewtopic.php?p=1395178#p1395178
Цитата:
2. Вместе с макросом _BV в библиотеке определены также еще несколько полезных макросов для работы с битами. Один из них:

#define loop_until_bit_is_set( sfr, bit ) do { } while (bit_is_clear(sfr, bit))

ожидает в пустом цикле, пока в регистре ввода-вывода sfr установится бит bit. Грех не воспользоваться готовеньким, тем более что библиотечные элементы, как правило, хорошо оптимизированы и протестированы.

Слепая вера в истинность и непогрешимость... "все так делают, значит это правильно"... :)))
В данном случае макрос скрывает суть происходящего, а многие просто слепо поверят в то, что "библиотечные элементы, как правило, хорошо оптимизированы и протестированы"... (у меня, лично, по опыту общения с различными либами, такое архисмелое утверждение просто вызывает ржач...)
Вся фишка в том, что этот цикл, при определённых условиях, может стать "вечным"... что, в итоге, может обернуться либо зависанием, либо перезапуском, если включен WDT...
http://www.pic24.ru/doku.php/osa/articl ... ut_errors#правила_для_функций
Цитата:
Часто в программах встречаются участки кода, которые потенциально могут привести к зависанию. Самый распространенный пример – ожидание готовности или подтверждения при работе с внешней периферией
Если произошла непредвиденная ситуация (обрыв линии, короткое замыкание, конденсат и пр.), то из этого цикла мы никогда не выйдем. (Разве что только WDT сработает). Поэтому нужно всегда предусматривать аварийный выход из таких циклов. Можно это делать с помощью таймера.
Правда, целый таймер выделять для этого иногда накладно, и есть смысл работать с глобальной переменной, которая будет уменьшаться в прерывании по таймеру

Всех неверующих и думающих "это мне и нах не нужно, у меня такого просто быть не может" отсылаю опять к исходникам Чена... :))

Предвкушая вопрос одиозных личностей "А к чему это всё?", напоминаю, тема называется "C для AVR -- пишем аккуратно."...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 112 ]    , , , 4, ,  

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  


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