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

 
 
> STM8 как правильно сделать функцию Delay
-AZ-
сообщение Dec 15 2015, 13:20
Сообщение #1


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

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Кто плотно сталкивался с подобной задачей, как правильно написать универсальную функцию Delay для STM8
Пробывал такой вариант, так вот uS до 7-10 не чувствует, да и перевести в сон процессор нельзя...насколько понимаю если уводить в сон, то только по прерыванию делать?
Кто как реализовывает?

Код
void delays_init (void)
{
  CLK_PCKENR1_bit.PCKEN12 = 1;
  TIM4_PSCR_bit.PSC = 0x01;    
  TIM4_EGR_bit.UG = 1;        
  TIM4_CR1_bit.CEN = 1;      
}

void delay_us (unsigned char us)
{
  TIM4_CNTR = 0;
  while (TIM4_CNTR < us);  
}

void delay_ms (unsigned int ms)
{
  ms = ms<<2;
  while (ms--) delay_us(250);
}


Сообщение отредактировал IgorKossak - Dec 15 2015, 19:17
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Tarbal
сообщение Jan 16 2016, 19:17
Сообщение #2


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Тады ой. В реалтайме может не получиться если задержка в несколько циклов процессора. В таком случае я бы просто считывал значения счетчика системного таймера из регистра и смотрел на дельту в цикле. Важно считывать значения таймера в беззнаковую переменную, тогда переполнение счетчика таймера между двумя отсчетами будет пофиг -- дельта все равно получится правильной.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jan 16 2016, 20:10
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tarbal @ Jan 16 2016, 22:17) *
я бы просто считывал значения счетчика системного таймера из регистра и смотрел на дельту в цикле.

Если крутиться в цикле... зачем тогда таймер??? Откуда в СТМ8 системный таймер??? Какой разрядности счётчик... 32 бита??? Ну и сколько это займёт по времени???
Нет никакого смысла в микросекундных задержках... уже сказали... Для единичных случаев всё равно как... в остальных - юзать железо... таймера...

Цитата(Spider @ Dec 17 2015, 17:23) *
В stm8 вообще сложно добиться нужных задержек даже с nop, в виду особенностей работы внутреннего конвейера.

При желании можно... но действительно геморно...
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 17 2016, 14:49
Сообщение #4


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(HHIMERA @ Jan 17 2016, 00:10) *
Если крутиться в цикле... зачем тогда таймер???


Я не знаком с STM8 архитектурой, но ведь вроде поднимался вопрос о проблеме свяанной с неповторяемостью задержки, исполненной на програмном цикле, из-за конвейера?
Этот подход устранит проблему.

Цитата(HHIMERA @ Jan 17 2016, 00:10) *
Какой разрядности счётчик... 32 бита??? Ну и сколько это займёт по времени???


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

Цитата(HHIMERA @ Jan 17 2016, 00:10) *
Нет никакого смысла в микросекундных задержках... уже сказали...


Всяко бывает. Убедите ТС в этом.

Цитата(HHIMERA @ Jan 17 2016, 00:10) *
Для единичных случаев всё равно как... в остальных - юзать железо... таймера...


Кому все равно, а кому надо, чтобы работало не как получится, а как надо.

Цитата(HHIMERA @ Jan 17 2016, 00:10) *
При желании можно... но действительно геморно...


Профессиональный подход действительно налагает дополнительную ответственность, но каждый выбитрает сам куда ему надо идти.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jan 17 2016, 17:00
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tarbal @ Jan 17 2016, 17:49) *
Я не знаком с STM8 архитектурой, но ведь вроде поднимался вопрос о проблеме свяанной с неповторяемостью задержки, исполненной на програмном цикле, из-за конвейера?
Этот подход устранит проблему.

Не устранит... да это особо и не нужно...
Ради прикола... как-то замутил частотомер на 103-ем... на Си... выравнивал НОПами... Геморно... после каждого исправления/дополнения приходилось всё делать заново... но работало чётко... но только ради прикола...
Хардварно - вообще без проблем... всё такт в такт...
Цитата
Такой же какой и регистр таймера. Подход отход займет пару команд исполнить -- считать и сравнить, а задержка будет такая какую запросят с толерансом на подход отход.

8 бит??? 16мкС максимум??? Этого даже на 1-wire не хватит... Да и толку... прерывания сделают своё грязное дело... Или опять по старой привычке их запрещать???
Цитата
Всяко бывает. Убедите ТС в этом.

Зачем??? Сам убедится...
Цитата
Кому все равно, а кому надо, чтобы работало не как получится, а как надо.

Кому надо... пусть привыкает к хардварным... или полухардварным решениям...
Даже на том же 103-ем... 1-wire... как сказал уже Паша... таймер с компараторами и на прерывании...
Цитата
Профессиональный подход действительно налагает дополнительную ответственность, но каждый выбитрает сам куда ему надо идти.

Не... если кому-то нравится тратить таймер просто так... то я его найду где применить... Их там и так чуть-чуть в младшеньких... всего три...
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 18 2016, 03:32
Сообщение #6


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(HHIMERA @ Jan 17 2016, 20:00) *
Не... если кому-то нравится тратить таймер просто так... то я его найду где применить... Их там и так чуть-чуть в младшеньких... всего три...


Разве там нет свободнобегущего таймера?
Вроде говорили о компараторах, а они как раз и живут на свободнобегущем таймере. Вот его регистр и читать. С конфигурацией таймера ничего делать не надо. Просто читать сам счетчик.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jan 18 2016, 07:24
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tarbal @ Jan 18 2016, 06:32) *
С конфигурацией таймера ничего делать не надо. Просто читать сам счетчик.

biggrin.gif
Зашибись!!! STM8S003... три таймера... два из них 16-и... один восьмибитный... На таймерах висит... IR-датчик... 1-wire и семисегментник с автокоррекцией разнояркости разрядов... В итоге - ни один из них не является свободнобегущим... Дальше... зачем здесь нужны микросекунды... если всё или хардварно... или полухардварно??? Как таймером в цикле мерять мкС... если в любой момент прилетит прерывание... и может не одно... и даже одно может прервать другое???

Цитата(Эдди @ Jan 18 2016, 09:26) *
1-wire на STM8 только через задницу возможно сделать

Да всё там нормально... На STM8L тем более...
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jan 18 2016, 19:08
Сообщение #8


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(HHIMERA @ Jan 18 2016, 10:24) *
Да всё там нормально... На STM8L тем более...

У l-ки, да, есть DMA и аппаратный 1-wire элементарно пилится. А вот у s-ок приходится софтварно пихать параметры таймера, т.е. по сути пока передаешь-принимаешь, ничего полезного сделать не получится. А это означает, что если, скажем, нужно LCD использовать, то на КА его индикацию не выйдет сделать — нужно будет по прерыванию еще какого-нибудь таймера, что некошерно!

Цитата(Tarbal @ Jan 18 2016, 19:58) *
Вопрос был как сделать короткую микросекундную задержку, чтобы она была стабильной.

Это невозможно. Придется отключать все прерывания, кроме заданного таймера (ну или пока будешь нопы считать). Да и вообще бесполезно это: кому нахрен нужна стабильная микросекундная пауза? Это — верный признак того, что автор лезет не в те дебри!
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Jan 18 2016, 19:37
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Эдди @ Jan 18 2016, 23:08) *
У l-ки, да, есть DMA и аппаратный 1-wire элементарно пилится. А вот у s-ок приходится софтварно пихать параметры таймера, т.е. по сути пока передаешь-принимаешь, ничего полезного сделать не получится.

Эдди... Эдди... притормози... ты ли ещё картинок не насмотрелся??? Что... и здесь их ещё выкладывать??? biggrin.gif
Майн крутится сам по себе... делай чо хош... По прерыванию с прелоадом грузишь времянку следующего слота... по окончанию преобразования выставляешь флаг... Дальше в майне разруливаешь...
Там просечки в майне что-то около 7%...
Цитата
А это означает, что если, скажем, нужно LCD использовать, то на КА его индикацию не выйдет сделать — нужно будет по прерыванию еще какого-нибудь таймера, что некошерно!

LCD на другой таймер... даже если это мелкий TFT... пусть молотит...
Цитата
Это невозможно. Придется отключать все прерывания, кроме заданного таймера (ну или пока будешь нопы считать). Да и вообще бесполезно это: кому нахрен нужна стабильная микросекундная пауза? Это — верный признак того, что автор лезет не в те дебри!

Можно заюзать OPM свободного таймера... если он есть... ну уж точно не вылавливать что-то там в цикле...

Сообщение отредактировал HHIMERA - Jan 18 2016, 19:39
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jan 18 2016, 19:54
Сообщение #10


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(HHIMERA @ Jan 18 2016, 22:37) *
LCD на другой таймер... даже если это мелкий TFT... пусть молотит...

И в итоге упрешься в недостачу таймеров, потому что все будешь вешать на них.
Уж опрос кнопок и всякие экранчики — штука настолько медленная, что лучше ее через КА в while(1) main'а забульбенить.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 19 2016, 08:06
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Эдди @ Jan 19 2016, 01:54) *
И в итоге упрешься в недостачу таймеров, потому что все будешь вешать на них.
Уж опрос кнопок и всякие экранчики — штука настолько медленная, что лучше ее через КА в while(1) main'а забульбенить.

при опросе кнопок, желательно избавляться от дребезга (ну если только он аппаратно не подавлен), а значит опрашивать их надо с частотой порядка 50Гц. Да и обновление экранчиков, если там есть динамическая картинка - движение этой картинки будет зависеть от равномерности работы этого вашего while - тоже не должно быть больших задержек в нём.
В общем такое вешать в общий цикл - не очень хорошо, ну или нужно гарантировать отсутствие задержек в нём более пары мсек.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 19 2016, 12:06
Сообщение #12


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(jcxz @ Jan 19 2016, 12:06) *
при опросе кнопок, желательно избавляться от дребезга (ну если только он аппаратно не подавлен), а значит опрашивать их надо с частотой порядка 50Гц. Да и обновление экранчиков, если там есть динамическая картинка - движение этой картинки будет зависеть от равномерности работы этого вашего while - тоже не должно быть больших задержек в нём.
В общем такое вешать в общий цикл - не очень хорошо, ну или нужно гарантировать отсутствие задержек в нём более пары мсек.


Не знаю. Я всегда вешал в 10 миллисекундный цикл обработчик клавиатуры и выжидал 50 миллисекунд для успокоения дребезга. Никогда не было с этим проблем. Выжидал не в цикле, а пропуская 5 обращений к обработчику.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 19 2016, 14:51
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Tarbal @ Jan 19 2016, 18:06) *
Не знаю. Я всегда вешал в 10 миллисекундный цикл обработчик клавиатуры и выжидал 50 миллисекунд для успокоения дребезга. Никогда не было с этим проблем. Выжидал не в цикле, а пропуская 5 обращений к обработчику.

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

Цитата(Эдди @ Jan 19 2016, 19:47) *
На STM8 я тоже всякие разные методики реализовал. Но самое простое — реализовать аппаратно, т.е. повесить на кнопку кондер и резистор на сотню Ом.

RC-цепочка никак не поможет в борьбе с дребезгом сама по себе. Она поможет только если сигнал после неё поступает на вход, имеющий гистерезис (триггер Шмидта).
А самая надёжная аппаратная защита от дребезга - парафазный вход set/reset (RS-триггер).
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jan 19 2016, 14:51
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(jcxz @ Jan 19 2016, 17:47) *
процедур, которые могут длительно выполняться (десятки мсек) и блокировать процесс

Фигасе, это где ж такое видано — блокировать на бешеное время?
Если нужно что-то долгое делать, то выполнять порциями по значению таймера. Но лучше все на аппаратную реализацию спихнуть, тогда никаких тормозов не будет.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 21 2016, 03:35
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(Эдди @ Jan 19 2016, 20:51) *
Фигасе, это где ж такое видано — блокировать на бешеное время?
Если нужно что-то долгое делать, то выполнять порциями по значению таймера. Но лучше все на аппаратную реализацию спихнуть, тогда никаких тормозов не будет.

Это хорошо Вам если Вы целиком всё ПО пишете сами. А если у Вас команда из нескольких человек, которые пишут помодульно? И потом нужно в этом общем цикле (а-ля корпоративная многозадачность) собрать вызовы разных чужих функций, каждая написанная в своём стиле и когда не каждый член команды в состоянии адекватно построить алгоритм с ограничением времени работы функции.
Элементарная ситуация:
Есть ресурс с блокирующим доступом к нему (например - драйвер обмена по какому-то интерфейсу, например - SPI, на котором висит несколько разных устройств).
К этому ресурсу обращается одна из функций из этого общего цикла для того, чтобы считать скажем пару байт по SPI с одного из устройств на шине. Транзакция вроде короткая и обычно занимает мало времени. Но!...
Если ресурс оказывается занят (из другой задачи ОС другая функция в этот момент осуществляет длительную транзакцию с другим устройством на этой-же самой SPI), то вышеуказанная функция из общего цикла будет
теперь ждать длительное время освобождения ресурса. Вот тут и будут происходить редко случающиеся длительные задержки в этом общем цикле приводящие к редким сбоям в опросе клавиш.
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 21 2016, 13:06
Сообщение #16


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(jcxz @ Jan 21 2016, 06:35) *
Это хорошо Вам если Вы целиком всё ПО пишете сами. А если у Вас команда из нескольких человек, которые пишут помодульно? И потом нужно в этом общем цикле (а-ля корпоративная многозадачность) собрать вызовы разных чужих функций, каждая написанная в своём стиле и когда не каждый член команды в состоянии адекватно построить алгоритм с ограничением времени работы функции.
Элементарная ситуация:
Есть ресурс с блокирующим доступом к нему (например - драйвер обмена по какому-то интерфейсу, например - SPI, на котором висит несколько разных устройств).
К этому ресурсу обращается одна из функций из этого общего цикла для того, чтобы считать скажем пару байт по SPI с одного из устройств на шине. Транзакция вроде короткая и обычно занимает мало времени. Но!...
Если ресурс оказывается занят (из другой задачи ОС другая функция в этот момент осуществляет длительную транзакцию с другим устройством на этой-же самой SPI), то вышеуказанная функция из общего цикла будет
теперь ждать длительное время освобождения ресурса. Вот тут и будут происходить редко случающиеся длительные задержки в этом общем цикле приводящие к редким сбоям в опросе клавиш.


Да у вас организационная проблема. Нужен архитектор или кто-то еще кто бы принуждал писать правильно. Сочувствую вам. Мне приходилось работать в подобных коллективах с иррационально мыслящим начальством. Вы не сможете ничего изменить. Я бы на вашем месте поискал работу в более здоровом коллективе.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jan 21 2016, 15:05
Сообщение #17


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Tarbal @ Jan 21 2016, 16:06) *
Вы не сможете ничего изменить. Я бы на вашем месте поискал работу в более здоровом коллективе.

++

Жутко подобное читать!
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 21 2016, 18:33
Сообщение #18


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Эдди @ Jan 21 2016, 19:05) *
++

Жутко подобное читать!


Вам просто везло. Такое довольно часто встречается если начальство неумное.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Jan 22 2016, 08:40
Сообщение #19


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Tarbal @ Jan 21 2016, 21:33) *
Такое довольно часто встречается если начальство неумное.

Если начальник — идиот, надо постараться перетащить его на свою сторону и объяснить, как надо правильно.
Если он упорот совершенно и ни в какую не хочет меняться, то только один выход остается — свалить нафиг с такого гадюшника!
Go to the top of the page
 
+Quote Post
Tarbal
сообщение Jan 22 2016, 19:45
Сообщение #20


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

Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439



Цитата(Эдди @ Jan 22 2016, 12:40) *
Если начальник — идиот, надо постараться перетащить его на свою сторону и объяснить, как надо правильно.
Если он упорот совершенно и ни в какую не хочет меняться, то только один выход остается — свалить нафиг с такого гадюшника!

Я не знаю. Мне не удавалось убедить начальника. Или упоротые были или свою игру вели. Рациональные аргументы не достигали мозга.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- phenixs   STM8 как правильно сделать функцию Delay   Dec 15 2015, 13:20
- - jcxz   А каким местом STM8 относится к ARM??   Dec 15 2015, 18:08
|- - IgorKossak   Перенёс.   Dec 15 2015, 19:18
- - uriy   микросекундные задержки я делаю просто бесполезным...   Dec 16 2015, 05:43
|- - phenixs   Цитата(uriy @ Dec 16 2015, 08:43) микросе...   Dec 16 2015, 07:30
- - _Pasha   да. задержки дело мутное. пришлось на таймерах ...   Dec 16 2015, 11:19
|- - phenixs   Цитата(_Pasha @ Dec 16 2015, 14:19) да. з...   Dec 16 2015, 14:13
|- - scifi   Цитата(phenixs @ Dec 16 2015, 17:13) А ка...   Dec 16 2015, 14:19
|- - phenixs   Цитата(scifi @ Dec 16 2015, 17:19) 1nS - ...   Dec 16 2015, 14:26
- - scifi   Когда требуемая задержка приближается по длительно...   Dec 16 2015, 14:35
|- - phenixs   Цитата(scifi @ Dec 16 2015, 17:35) Когда ...   Dec 16 2015, 14:39
|- - scifi   Цитата(phenixs @ Dec 16 2015, 17:39) и ин...   Dec 16 2015, 14:48
|- - phenixs   Цитата(scifi @ Dec 16 2015, 17:48) Видимо...   Dec 16 2015, 15:11
|- - scifi   Цитата(phenixs @ Dec 16 2015, 18:11) Прим...   Dec 16 2015, 20:09
|- - Эдди   Цитата(phenixs @ Dec 16 2015, 18:11) Прим...   Jan 18 2016, 06:26
- - Spider   В stm8 вообще сложно добиться нужных задержек даже...   Dec 17 2015, 14:23
|- - phenixs   Цитата(Spider @ Dec 17 2015, 17:23) В stm...   Dec 17 2015, 16:50
- - _Pasha   вот я с 1wire на совершенно отфонарном пине сделал...   Dec 17 2015, 15:36
|- - HHIMERA   Цитата(_Pasha @ Dec 17 2015, 18:36) вот я...   Dec 17 2015, 19:34
- - Tarbal   Цитата(phenixs @ Dec 15 2015, 17:20) Кто ...   Jan 16 2016, 02:04
- - uriy   ТС нужны микросекундные задержки! С миллисекун...   Jan 16 2016, 19:04
||- - _Pasha   Цитата(HHIMERA @ Jan 16 2016, 23:10) Отку...   Jan 17 2016, 07:18
||- - HHIMERA   Цитата(Эдди @ Jan 18 2016, 23:54) И в ито...   Jan 18 2016, 20:07
|||- - Эдди   Цитата(HHIMERA @ Jan 18 2016, 23:07) Да и...   Jan 18 2016, 22:03
||||- - HHIMERA   Цитата(Эдди @ Jan 19 2016, 18:51) Если ну...   Jan 19 2016, 15:13
|||||- - Эдди   Цитата(HHIMERA @ Jan 19 2016, 18:13) Ну п...   Jan 19 2016, 15:58
||||- - jcxz   Цитата(Tarbal @ Jan 21 2016, 19:06) Да у ...   Jan 22 2016, 04:39
|||- - Tarbal   Цитата(jcxz @ Jan 19 2016, 18:51) Вы не п...   Jan 19 2016, 15:01
||- - Эдди   Цитата(jcxz @ Jan 19 2016, 11:06) В общем...   Jan 19 2016, 13:47
|- - HHIMERA   Ну и что??? Для микросекунд он всё равно не годитс...   Jan 17 2016, 10:19
- - Tarbal   Разные бывают задачи. Вы знакомы с апликацией ТС? ...   Jan 18 2016, 13:26
|- - HHIMERA   Цитата(Tarbal @ Jan 18 2016, 16:26) Тщате...   Jan 18 2016, 13:42
|- - Tarbal   Цитата(HHIMERA @ Jan 18 2016, 17:42) Вы о...   Jan 18 2016, 14:56
|- - HHIMERA   Цитата(Tarbal @ Jan 18 2016, 17:56) Ну а ...   Jan 18 2016, 15:40
|- - Tarbal   Цитата(HHIMERA @ Jan 18 2016, 19:40) Чтоб...   Jan 18 2016, 16:58
|- - HHIMERA   Цитата(Tarbal @ Jan 18 2016, 20:58) предл...   Jan 18 2016, 17:05
- - Tarbal   Верно. Я напрасно теряю время.   Jan 18 2016, 17:53


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

 


RSS Текстовая версия Сейчас: 28th April 2024 - 18:32
Рейтинг@Mail.ru


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