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

 
 
> Измерение временных интервалов, с высокой точностью
AVR
сообщение Jun 2 2006, 17:03
Сообщение #1


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Здравствуйте!
Как можно измерить временные интервалы дительностью несколько секунд на AVRах с точностью до микросекунды? При том что кварц стоит на 1 МГц? Емкости таймера-счетчика 16 бит для такой задачи не хватает...


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Oct 11 2006, 16:25
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(=GM=)
Автор топика намеревался измерять длительность секундных импульсов, а не период. Т.е., есть передний фронт импульса, длительность импульса и задний фронт импульса. Время начала импульса наша программа измерит, а как быть со спадом? Может быть перенастраивать ICES1 при первом входе в прерывание TIM_CAPT или есть более короткий путь?
Ну дык у АВР есть возможность вызывать прерывание по любому изменению состояния входа. Надо только при запуске правильно инициализироваться (учесть текущее состояние), а дальше - понеслась.

Ведро маслят... Это многое объясняет... Как-нить при случае тоже ляпну такое smile.gif


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 12 2006, 09:31
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(singlskv @ Oct 11 2006, 15:06) *
Цитата(=GM= @ Oct 11 2006, 15:10) *

Ну раз так, вот вам еще экономия. Не используйте регистры r5-r4 в прерывании, храните результат непосредственно в регистрах icr1h-icr1l. Будет сохранно, как в банке ... до следующего захвата.

А как Вы в основной программе планируете узнавать что произошел второй захват ? smile.gif

А вы у GetSmart спросите, он всё знает(:-). Спокойно, GetSmart, шютю я(:-)

Чуть посерьёзнее. Я вам про экономию регистров в прерывании говорю, "которых всегда не хватает", а вы плавно меняете тему. Какая разница, где хранить время текущего захвата, в регистрах r7-r6-r5-r4 или в r7-r6-icr1h-icr1l? Никакой разницы нет. Почти. Зато экономится два регистра!

Ну а по делу, думаю есть несколько подходов.

1) Есть две переменные, скажем, oldTime и newTime (ваши r7-r6-r5-r4). Прерывание захвата должно переписывать содержимое newTime в oldTime, и только затем обновлять newTime. Основная программа в любое удобное для себя время(:-) определяет длительность интервала, просто вычитая содержимое oldTime из newTime.

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

Цитата(GetSmart @ Oct 11 2006, 15:25) *
Цитата(=GM=)
Автор топика намеревался измерять длительность секундных импульсов, а не период. Т.е., есть передний фронт импульса, длительность импульса и задний фронт импульса. Время начала импульса наша программа измерит, а как быть со спадом? Может быть перенастраивать ICES1 при первом входе в прерывание TIM_CAPT или есть более короткий путь?
Ну дык у АВР есть возможность вызывать прерывание по любому изменению состояния входа. Надо только при запуске правильно инициализироваться (учесть текущее состояние), а дальше - понеслась.

Неправильно. В том то и дело, что не один раз при запуске программы надо инициализироваться, а каждый раз при входе в захват(:-(. Потому что на четных захватах вы ловите переход 0-1 (начало импульса), а на нечетных захватах вы ловите 1-0 (конец импульса). Я и спрашивал, перенастраивать ICES1 каждый раз или есть другой способ, попроще?

Цитата(GetSmart @ Oct 11 2006, 15:25) *
Ведро маслят... Это многое объясняет... Как-нить при случае тоже ляпну такое smile.gif

GetSmart, хорош бурчать, это у вас так что проявляется(:-)? Не злитесь, ляпните что-нибудь или тяпните, разрядка придёт, поверьте(:-). Добавлю специально для вас. Напротив моих окон стоит бангало, под ним живет более 20 диких кроликов, смешные такие...А недавно видел как ворона ссорилась с белкой, наскакивали друг на друга, прям как вы на меня(:-).

GetSmart, жена маслята уже посолила, вот. Белые тут тоже водятся, но ехать далеко, в Нью Форист, неохота...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 15 2006, 02:25
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Oct 12 2006, 12:31) *
А недавно видел как ворона ссорилась с белкой, наскакивали друг на друга, прям как вы на меня(:-).

Дык, эта, если смотреть со стороны, здесь все замечания вам по делу были сказаны, а вы все в шутку да в обидку воспринимаете..
Что ни пост - то перл:

особливо это:
Цитата
Какая разница, где хранить время текущего захвата, в регистрах r7-r6-r5-r4 или в r7-r6-icr1h-icr1l?

Ну уж никак не в аппаратно зависимых регистрах, которые нам абсолютно неподконтрольны.
Вы что, правда не понимаете, что можно не успеть вычитать icr1h-icr1l до того как случится следующий захват? либо например наткнуться на ситуацию когда в момент вычитки L, произойдет следующий захват.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 16 2006, 13:06
Сообщение #5


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Oct 15 2006, 01:25) *
Что ни пост - то перл: особливо это:
Цитата
Какая разница, где хранить время текущего захвата, в регистрах r7-r6-r5-r4 или в r7-r6-icr1h-icr1l?

Ну уж никак не в аппаратно зависимых регистрах, которые нам абсолютно неподконтрольны.
Вы что, правда не понимаете, что можно не успеть вычитать icr1h-icr1l до того как случится следующий захват? либо например наткнуться на ситуацию когда в момент вычитки L, произойдет следующий захват.

Я и не такие перлы могу выдавать(:-). Но вообще-то, в нашем случае никакой разницы на самом деле нет, посудите сами, как только произошел захват, возникло прерывание, в котором регистры icr1h-icr1l читаются и переписываются в r5-r4, т.е. и icr1h-icr1l, и r5-r4 изменяются практически одновременно (макс разница 32 мс, если есть длинное прерывание). Естественно предполагается, что вы должны успеть обработать r7-r6-r5-r4 до следующего захвата, который может случиться через секунду (по условию задачи). Ну и спрашивается, зачем тратить два регистра МК, если можно с таким же успехом хранить данные в регистрах захвата?

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

Вы-то сами понимаете, что при наличии длинного прерывания наступит крах вашей системы прерываний, если, скажем, возникнет два прерывания захвата в течение 65 мс?

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

Возможно, кому-то достаточно измерять импульсы от 32 мс до секунд и с длинными прерываниями, согласен, тогда забудьте о сказанном выше. Я бы сказал так, что постановка первоначальной задачи была нечеткой, отсюда все недоразумения.

Что ещё? На справедливую критику не обижаюсь, с несправедливой борюсь по мере сил(:-), и посмеяться и пошутить люблю, но по-доброму.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 18 2006, 11:44
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Oct 16 2006, 16:06) *
Я и не такие перлы могу выдавать(:-). Но вообще-то, в нашем случае никакой разницы на самом деле нет, посудите сами, как только произошел захват, возникло прерывание, в котором регистры icr1h-icr1l читаются и переписываются в r5-r4, т.е. и icr1h-icr1l, и r5-r4 изменяются практически одновременно (макс разница 32 мс, если есть длинное прерывание). Естественно предполагается, что вы должны успеть обработать r7-r6-r5-r4 до следующего захвата, который может случиться через секунду (по условию задачи). Ну и спрашивается, зачем тратить два регистра МК, если можно с таким же успехом хранить данные в регистрах захвата?

Если же вы не успели, то произойдет новый захват, r5-r4 тоже испортятся, так что тут ничто не поможет, какая разница, что испорчено?

Затем, что прерывание может произойти именно в момент вычитки значения, и мы можем прочитать недостоверные данные.

Если же рез-тат будет храниться в r7-r6-r5-r4, то мы можем запретить флаг I при обращении к этой 32х битной переменной, и тем самым обезопасить себя от последствий описанного случая.

Учить матчасть smile.gif
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 18 2006, 14:14
Сообщение #7


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(defunct @ Oct 18 2006, 10:44) *
Затем, что прерывание может произойти именно в момент вычитки значения, и мы можем прочитать недостоверные данные.

Если же рез-тат будет храниться в r7-r6-r5-r4, то мы можем запретить флаг I при обращении к этой 32х битной переменной, и тем самым обезопасить себя от последствий описанного случая.

Here we go! Я ж вам сконструировал реальный пример. Ну запретили вы все прерывания, потом пришло два захвата до начала вашей обработки с интервалом в 50 мкс, и где будут данные от первого захвата, скажите? Правильно, в глубокой попе, а не в r7-r6-r5-r4.

Как-то вы несистемно подходите к задаче измерения интервалов. Ну написали вы программку чтения данных из регистров icr1, дальше-то что делать? Ждать когда завершится длинное прерывание и фоновая программа наконец запретит прерывания, соизволит переписать r7-r6-r5-r4 в память и разрешит прерывания заново? Данах такую программу измерения! Пока ваша программа будет жевать сопли, там уж десять раз новый захват может возникнуть!

На мой взгляд, чтобы программа обработки захвата была максимально быстрой, она должна записывать время захвата в буфер именно в программе обработки. Если вы согласны с этим, то какая разница откуда писать в буфер? Из r7-r6-r5-r4, или из r7-r6-icr1h-icr1l, или из r3-r2-icr1h-icr1l? Да без разницы! Но лучше из r3-r2-icr1h-icr1l (с возможной коррекцией), т.к. экономятся регистры и быстрее работает. Ну и никаких других прерываний, измерение интервалов само по себе ответственное дело(:-).

Цитата(defunct @ Oct 18 2006, 10:44) *
Учить матчасть smile.gif

Согласен, учить не вредно (хотя конкретно здесь сказано вами не к месту). Но вот посмотрел еще раз на 128-ю атмегу и нашел способ измерения интервалов с точностью 0.5 мкс (полмикросекунды!) Точность удвоена, ура три раза!

Кстати, почему никто не отвечает на вопрос что требуется измерение длины импульса (фронт и спад), а не периода (два фронта или два спада)? Все согласны что ли?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 18 2006, 16:04
Сообщение #8


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(=GM= @ Oct 18 2006, 17:14) *
хотя конкретно здесь сказано вами не к месту

Вам виднее.


Цитата
Кстати, почему никто не отвечает на вопрос что требуется измерение длины импульса (фронт и спад), а не периода (два фронта или два спада)? Все согласны что ли?

Потому что это уже косметика.

Цитата
Если вы согласны с этим, то какая разница откуда писать в буфер? Из r7-r6-r5-r4, или из r7-r6-icr1h-icr1l, или из r3-r2-icr1h-icr1l?

Разница огромная.
Я предпочту запретить прерывания и прочитать достоверное значение из защищенного от изменений буфера. После чего, разрешив прерывания, будет выполнено обновление переменной и т.д. Этим я обезопашу себя и вас от дурацких вопросов в будущем - "окуда появилось это значение". Вы же со своей реализацией и вычиткой icr от таких вопросов ничем не застрахованы, если Вам с вашим системным подходом до сих пор не ясна проблема, то я попробую озвучить ее прямым текстом:
- пол переменной у вас может быть прочитано из одного семпла, а вторая половина - из второго.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AVR   Измерение временных интервалов   Jun 2 2006, 17:03
- - WHALE   C точностью до микросекунды с кварцем на 1Мгц ника...   Jun 2 2006, 17:07
- - GetSmart   А инкрементировать ещё одни (старшие) 16 бит по пе...   Jun 2 2006, 17:10
|- - rezident   Цитата(GetSmart @ Jun 2 2006, 23:10) А ин...   Jun 2 2006, 17:20
|- - AVR   Цитата(GetSmart @ Jun 2 2006, 21:10) А ин...   Jun 2 2006, 17:24
- - GetSmart   ЦитатаC точностью до микросекунды с кварцем на 1Мг...   Jun 2 2006, 17:23
- - GetSmart   Чё-то я ослеп. Речь как раз об AVR. Берёте Мегу8, ...   Jun 2 2006, 17:43
|- - defunct   Цитата(GetSmart @ Jun 2 2006, 20:43) Чё-т...   Jun 2 2006, 19:26
- - GetSmart   ЦитатаНельзя выйти на точность в 1мкс в случае ког...   Jun 2 2006, 19:51
|- - defunct   Цитата(GetSmart @ Jun 2 2006, 22:51) Немн...   Jun 2 2006, 20:32
- - GetSmart   ЦитатаНу представьте захвачен ICR = 0. Что делать?...   Jun 2 2006, 20:54
|- - defunct   Цитата(GetSmart @ Jun 2 2006, 23:54) Цита...   Jun 2 2006, 20:57
|- - smk   Цитата(GetSmart @ Jun 2 2006, 23:54) Цита...   Oct 5 2006, 16:30
|- - defunct   Цитата(smk @ Oct 5 2006, 19:30) У меня си...   Oct 6 2006, 11:11
- - GetSmart   Надо только в прерывании захвата смотреть, если чи...   Jun 2 2006, 21:18
|- - defunct   Цитата(GetSmart @ Jun 3 2006, 00:18) Надо...   Jun 2 2006, 21:45
- - GetSmart   ЦитатаТам это учтено: Да, я это написал когда ещё ...   Jun 2 2006, 21:53
|- - defunct   Цитата(GetSmart @ Jun 3 2006, 00:53) Кста...   Jun 2 2006, 22:05
- - GetSmart   Вроде нормальный пример. Тока непонятно зачем R0 и...   Jun 2 2006, 23:02
|- - defunct   Цитата(GetSmart @ Jun 3 2006, 02:02) Хотя...   Jun 3 2006, 13:02
- - GetSmart   ???   Jun 3 2006, 05:22
- - Rst7   О чем вы, господа? Забыли, что внутри проца есть е...   Jun 3 2006, 06:28
- - GetSmart   О чём вы, господин? Задержка всегда постоянная. И ...   Jun 3 2006, 06:53
- - Rst7   Э, да, вспылил, был неправ   Jun 3 2006, 07:20
- - Валентиныч   А чем вызвано ограничение по кварцу - 1 МГц? (Или ...   Jun 3 2006, 14:17
- - GetSmart   defunct Ну ёкарный бабай... Ещё нужно заменить ...   Jun 3 2006, 17:16
|- - defunct   Цитата(GetSmart @ Jun 3 2006, 20:16) defu...   Jun 3 2006, 19:05
- - Sergiy   все хорошо ребята - мона конечно извращаться с АВР...   Jun 3 2006, 21:14
|- - smk   Цитата(Sergiy @ Jun 4 2006, 00:14) частот...   Oct 5 2006, 17:02
|- - SasaVitebsk   Цитата(Sergiy @ Jun 4 2006, 00:14) все хо...   Oct 5 2006, 23:37
|- - Stanislav   Цитата(SasaVitebsk @ Oct 6 2006, 03:37) Ц...   Oct 6 2006, 11:58
- - Sergiy   Да кстати в продолжение темы, а знаете зачем у ква...   Jun 3 2006, 21:29
- - king2   И вот все равно не понимаю я... Предположим, в эт...   Oct 5 2006, 01:30
- - CD_Eater   Не пойму, к чему эти обсуждения наилучшего кода, е...   Oct 5 2006, 17:56
- - khach   Как померять? Используя ГЛИН (генератор пилы) и вн...   Oct 5 2006, 19:49
- - =GM=   Ну вот, опоздал к началу обсуждения, как всегда, в...   Oct 6 2006, 16:22
|- - Stanislav   Цитата(=GM= @ Oct 6 2006, 20:22) Задача д...   Oct 9 2006, 10:46
|- - =GM=   Цитата(Stanislav @ Oct 9 2006, 09:46) Цит...   Oct 9 2006, 12:56
|- - Stanislav   Цитата(=GM= @ Oct 9 2006, 16:56) Поясните...   Oct 9 2006, 16:09
- - _artem_   =GM=, использование арифметических операций предпо...   Oct 6 2006, 17:17
|- - =GM=   Цитата(_artem_ @ Oct 6 2006, 16:17) =GM=,...   Oct 6 2006, 22:48
- - _artem_   Правильно говорите - я то невнимательно прочитал п...   Oct 7 2006, 00:10
- - singlskv   Подправил немного код GetSmart и defunct - добавил...   Oct 7 2006, 10:37
- - GetSmart   Забавно. На этой странице всех повело совсем не в ...   Oct 9 2006, 13:35
|- - =GM=   Цитата(singlskv @ Oct 7 2006, 09:37) Подп...   Oct 9 2006, 13:59
|- - singlskv   Цитата(=GM= @ Oct 9 2006, 17:59) Хочу нем...   Oct 9 2006, 16:34
|- - Леонид Иванович   ЦитатаНу и последнее, в подобных случаях предпочит...   Oct 9 2006, 20:15
|- - =GM=   Цитата(Леонид Иванович @ Oct 9 2006, 19:1...   Oct 10 2006, 11:04
|- - singlskv   Цитата(=GM= @ Oct 10 2006, 15:04) Что оче...   Oct 10 2006, 11:19
|- - SasaVitebsk   Цитата(singlskv @ Oct 10 2006, 14:19) Цит...   Oct 10 2006, 13:25
|- - =GM=   Цитата(SasaVitebsk @ Oct 10 2006, 12:25) ...   Oct 10 2006, 14:36
|- - defunct   Цитата(SasaVitebsk @ Oct 10 2006, 16:25) ...   Oct 10 2006, 22:32
- - GetSmart   Цитата(=GM=)Код mov temp,r4 ;с возможным п...   Oct 9 2006, 15:22
|- - =GM=   Цитата(GetSmart @ Oct 9 2006, 14:22) Цита...   Oct 9 2006, 16:06
- - _artem_   Для микросекундной точности mожно скорректировать...   Oct 9 2006, 16:11
|- - Stanislav   Цитата(_artem_ @ Oct 9 2006, 20:11) Для м...   Oct 9 2006, 16:13
- - GetSmart   Цитата(=GM=)Ничего не понял, поясните. Здесь никак...   Oct 9 2006, 16:24
|- - =GM=   Цитата(GetSmart @ Oct 9 2006, 15:24) Цита...   Oct 10 2006, 10:43
|- - singlskv   Цитата(=GM= @ Oct 10 2006, 14:43) 3) Одна...   Oct 10 2006, 11:49
|- - =GM=   Чудак-человек, я согласен, что практически ваша пр...   Oct 10 2006, 12:51
|- - singlskv   Цитата(=GM= @ Oct 10 2006, 16:51) Пусть о...   Oct 10 2006, 13:23
- - GetSmart   Павезло так павезло   Oct 9 2006, 20:37
- - smk   По моему скромному мнению, мне очень понравилась и...   Oct 10 2006, 14:09
- - GetSmart   Ой-Ой-Ой. Ладно, господа. Я вас примирю. Использ...   Oct 10 2006, 14:14
- - GetSmart   Цитата(=GM=)Просто механически повторил ваш код, р...   Oct 10 2006, 14:33
- - singlskv   Еще подправил код: - заменил на одну константу Con...   Oct 10 2006, 16:20
|- - =GM=   Цитата(singlskv @ Oct 10 2006, 15:20) Еще...   Oct 10 2006, 17:15
|- - singlskv   Цитата(=GM= @ Oct 10 2006, 21:15) Мне каж...   Oct 10 2006, 17:52
||- - =GM=   Цитата(singlskv @ Oct 10 2006, 16:52) Цит...   Oct 11 2006, 11:10
||- - singlskv   Цитата(=GM= @ Oct 11 2006, 15:10) Ну раз ...   Oct 11 2006, 16:06
|- - singlskv   Цитата(=GM= @ Oct 10 2006, 21:15) Цитата(...   Oct 10 2006, 18:06
|- - =GM=   Цитата(singlskv @ Oct 10 2006, 17:06) Цит...   Oct 11 2006, 10:54
- - GetSmart   Цитата(singlskv)Код in R5, ICR1H mov R7, ConstF...   Oct 10 2006, 20:19
|- - singlskv   [quote name='GetSmart' date='Oct 11 20...   Oct 10 2006, 20:58
- - GetSmart   defunct Скучали тут без Вас А почему все думают,...   Oct 10 2006, 23:11
|- - defunct   Цитата(GetSmart @ Oct 11 2006, 02:01) А п...   Oct 10 2006, 23:14
- - GetSmart   Цитатакак "глюкодром" Класс! Не, ну...   Oct 10 2006, 23:34
|- - defunct   Цитата(GetSmart @ Oct 11 2006, 02:34) Не,...   Oct 10 2006, 23:57
- - GetSmart   Цитата(defunct)i - переход на длительный обработчи...   Oct 11 2006, 02:49
|- - AVR   Прошу прощения за оффтоп, но для самого автора тем...   Oct 11 2006, 17:25
||- - singlskv   Цитата(AVR @ Oct 11 2006, 21:25) Прошу пр...   Oct 11 2006, 17:30
||- - GetSmart   Цитата(AVR @ Oct 11 2006, 23:25) Прошу пр...   Oct 11 2006, 17:43
|- - singlskv   Цитата(=GM= @ Oct 18 2006, 18:14) Но вот ...   Oct 18 2006, 20:07
|- - =GM=   Цитата(singlskv @ Oct 18 2006, 19:07) Цит...   Oct 19 2006, 15:21
- - CD_Eater   Цитата(defunct @ Oct 11 2006, 03:57) Цита...   Oct 11 2006, 17:59
- - singlskv   Цитата(defunct @ Oct 11 2006, 03:14) Цита...   Oct 11 2006, 20:51
- - GetSmart   Цитата(=GM=)GetSmart, хорош бурчать, это у вас так...   Oct 12 2006, 10:18
- - GetSmart   Цитата(=GM=)Как-то вы несистемно подходите к задач...   Oct 18 2006, 14:43
|- - =GM=   Цитата(GetSmart @ Oct 18 2006, 13:43) Цит...   Oct 19 2006, 14:55
- - GetSmart   defunct Любопытная вещь. Это я где-то уже видел и ...   Oct 18 2006, 17:17
- - singlskv   Цитата(=GM= @ Oct 19 2006, 18:55) Код.......   Oct 19 2006, 17:20
- - GetSmart   Цитата(=GM=)Похоже вам слово системщик, как быку к...   Oct 20 2006, 02:23
- - =GM=   GetSmart У вас же в последней проге слишком много ...   Oct 20 2006, 10:08
2 страниц V   1 2 >


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

 


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


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