AVR vs PIC

Jun 20, 2004 Last reply: 21 years ago 988 Replies
9-Jul-04 14:46 George Shepelev wrote to Artem Kamburov:

AK>> Для тебя, да. А для твоего снабженца гиморой - он приходит на фирму

GS> У вас проблемы со снабженцем? Что-ж, бывает. Hо при чём тут возможности GS> PIC'ов, совершенно непонятно...

И это говорит человек, который постоянно плачется, что чего-то не достать :-)

9-Jul-04 14:47 George Shepelev wrote to Alexey Boyko:

GS> При грамотном написании программ работа с данными (в том числе битовыми GS> массивами) будет очень быстрой.

Работа с битовыми *массивами* будет одинаково медленной как на PIC, так и на AVR. Так как у них нет косвенной адресации бита.

*массив* предполагает адресацию по переменому индексу, работа с

bitclr .macro *bl [z] = 0 bcf (([z]+bl)>>3),((bl)&7) .endm bitset .macro *bl [z] = 0 bsf (([z]+bl)>>3),((bl)&7) .endm и т.д.

defseg bits,$3C0,$400 ; (8*$78),(8*$80)

seg bits i_flags .ds 3 seg rom0 bitset i_flags bitclr i_flags+1 jb i_flags+2, ...

Ничем не отличается от seg bits i_phase .ds 1 i_changed .ds 1 i_new .ds 1 seg rom0 bitset i_phase bitclr i_changed jb i_new, ...

i_flags - это всё равно НЕ МАССИВ, пока мы с ним не работаем как с массивом, а именно, по переменному (не константному) индексу (или по указателю). Да, это можно написать, добавив к номеру бита номер стартового бита массива, выделив из полученного 3 младших знака для вычисления (или выборки из массива в ПЗУ) маски этого бита, остальные сдвинув вправо на 3 для получения адреса его байта. Но это такой объём кода, на фоне которого пара лишних ld/st у AVR будет мало что весить.

GS> При грамотном написании программ работа с данными (в том числе битовыми GS> массивами) будет очень быстрой. Ты так заманчиво про битовые массивы сказал... Пожалуйста, приведи "очень быстрый" код для работы с "в том числе битовым массивом". Дано: есть массив seg bits state: .ds 24

Откуда-то приходит номер канала i=0..23, в котором изменилось состояние, и признак 0 или 1 нового состояния. Потом из другого места приходит вопрос "а как там дела у канала j?", надо ответить. Напиши код для PIC16 (что его нельзя сделать "очень быстрым" ни для MCS51, ни для AVR, ни для MSP430 я признаю сразу!) А если ты имел ввиду "массу битов", а не "битовый массив", то надо писать не GS> (в том числе битовыми массивами) будет очень быстрой. а

Где чёткость выражения мысли, присущая высококлассному программисту? С каких пор слова "битовый массив" и "масса битов" означают одно и то же? Со вторым у пика действительно неплохо. Хотя и не намного лучше, чем у MCS51 (256 битовых флагов), не лучше, чем у MSP430 (вся линейная память - это не щёлкая банками не сотни, а тысячи/десятки тысяч битов), чем у MB90 или M16C, (сотни тысяч/миллионы битов). А с первым плохо у любого однокристальника.

GS> Ото-ж. А у PIC'а доступны все регистры, оптимизация заключается в GS> грамотном "распихивании" данных по регистровым банкам. Угу. Когда-то говорили "в СССР самые лучшие специалисты по оперированию больших опухолей, так как в остальном мире научились диагностировать на этапе, когда опухоль ещё маленькая и практики по большим опухолям у них нет". Значит "в мире PIC самые лучшие специалисты по ручному распихиванию переменных по памяти" ? Да, я сам когда-то адреса для мультиплексора CD4051 завёл на три старших бита порта pic-а, чтобы mowlw $20 / addwf PORTD,f перейти к следующему адресу. Ну и что, это аргумент за "pic forever" ? А если мне понадобится прицепить 6 независимых мультиплексоров, то искать 6-портовый пик? Или между тройками выходных ног для адресов ставить входную ногу и подавать на неё фиксированно 0, чтобы таки addwf-ами на регистр порта работать?

Как-то странно у тебя защита пиков выходит. "а у пиков доступна вся память!"... Если у пиков и есть преимущества, то не там ты их показываешь. *Как* доступна? Поячеечно или мелкими кусками. А я в 90s8515 запросто сделал 259-байтный непрерывный буфер (тип+длина+до 255 данных+crc16) для принимаемых пакетов. Сделай это в пике16. И при каждом инкременте FSR проверяй его на 0 и добавляй к нему 0x20 или сколько там, а то и IRP-битом щёлкни. А потом мы сравним подпрограммы сравнения строк для pic16 (один указатель) и avr. А потом - суммирования массивов в третий массив для pic18 (два указателя) и AVR. А потом найдём задачку, где надо 4 указателя и обольём грязью и AVR, и PIC и скажем, что без MSP430 нет житья. И на всю жизнь найдём себе развлечение - искать задачу, которую *наш* любимец сделает, а чужой -- нет. А те задачи, где наоборот - обзовём нетипичными. Эти все вещи - фигня, пока влазят и успевает. А если на пределе, то для каждой архитектуры можно подобрать пример, когда она сможет, а остальные - фиг.

9-Jul-04 19:56 Alexander Torres wrote to Yuriy K:

YK>> Hу раз уж ты настаиваешь... YK>>

YK>> loop; YK>> eor r17, r16 ;1 YK>> out port, r17 ;1 YK>> rjmp loop ;2 YK>>

YK>> 2МГц @ 8МГц, 4МГц @ 16МГц. Уже "согласовано", что в два раза ниже.

AT> Что-то сомневаюсь, по тактам получается ьбольше чем в моем примере с AT> ПИКом, а частота вдруг выше, откуда бы это?

AT> напомню что мой пример содержал 3 такта: AT> L1: xorwf PORTA,f ; 1 AT> goto L1 ; 2

AT> при 4мгц тактовой, т.е. при 1мгц процессорной, период 6 тактов - т.е. AT> 166кгц, 180кгц было при тактовой чуть выше чем 4.

О! Как сравнивать пики с классическим mcs51, так "у того 12, а у этого 4", а как тут, так "т.е. при 1MHz процессорной" :-)

При 4МГц тактовой у AVR будет 4/8 = 500кГц. У MSP430 -- 4/12 = 333кГц.

При 1МГц тактовой у AVR - да, 125кГц, < 166кГц, А у msp430 вообще 83.3кГц.

Однако вопрос был не "а с какой частотой сможет махать ногой при 1МГц тактирования ядра".

А теперь возьмём, и сформируем два сдвинутых меандра на двух ножках.

; pic16 loop: mowlv mask1 ; 1 xorwf PORTA,f ; 1 ; goto $+1 ;; 2 mowlv mask2 ; 1 xorwf PORTA,f ; 1 goto loop ; 2

12 или 16 циклов (48 или 64 такта) в зависимости от необходимости центровки, 83,3 или 62.5 кГц при 4МГц осцилляторе, при 1 МГц ядра.

; AVR loop: eor r16,r17 ; 1 out port,r16 ; 1 ; rjmp $+2 ;; 2 eor r16,r18 ; 1 out port,r16 ; 1 rjmp loop ; 2

12 или 16 циклов, 83,3 или 62.5 кГц при 1 МГц osc, 333 или 250 кГц при 4МГц osc.

; MSP430 loop: xor.b R4, port ; 4 ; jmp $+2 ; 2 xor.b R5, port ; 4 jmp loop ; 2

20 или 24 цикла, 50 или 41.6 кГц при 1 МГц osc, 200 или 166 кГц при 4МГц osc.

Т.е. при том же *осцилляторе* AVR и MSP430 далеко впереди, при той же частоте ядра MSP проигрывает, а AVR строго вровень.

Ну а при сравнении частоты ядра хит сезона - классический или 6-тактовый MCS51 :-) loop: cpl P2.3 ; 1 ; sjmp $+2 ;; 2 cpl P2.4 ; 1 sjmp loop ; 2

8 или 12 циклов, 125 или 83.3 кГц при 1 МГц ядра, меньше циклов, чем у пика :-) А на loop: cpl P2.3 ; 1 sjmp loop ; 2 строго вровень с пиком.

p.s. Кстати, была у меня задачка, где 16-мегагерцовый i87c51FA уделывал бы 20-мегагерцовый pic16, хоть у того частота циклов была бы 3.75 раза больше. Всего ничего - прочитать из буфера (страница 32КБ в xram) изображение, сжать в 2 раза (несколько сложений-вычитаний таблицы в ПЗУ, нелинейное переквантование разностей яркостей соседних

8-битных пикселов в 4-битные отсчёты) и опять записать наружу. Потом наоборот. Что эмулировать внешнюю шину (там всё равно была альтерина EPF8282, я уже и на использование PSP смотрел :-) - всё равно долго), что по таблицам шарить... Считал такты, считал... И поставил pic16с64 i2c слейвом на i87c51FA -- контроллером дежурного (микропотребляющего) режима и на всякие служебные функции при работе. Там ему было самое место. Так кого и на каких задачах будем сравнивать?
ðÒÉ×ÅÔ Oleksandr!

10 Jul 04 01:20, Oleksandr Redchuk ÐÉÓÁÌ Alexey Boyko:

GS>>> ðÏÓÔÏÑÎÎÏ Ó ÜÔÉÍ ÓÔÁÌËÉ×ÁÀÓØ. "èÏÒÏÛÉÊ" ÓÉÛÎÙÊ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ GS>>> AVR ÐÒÏÔÉ× ÇÒÁÍÏÔÎÏÇÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÁ ÁÓÓÅÍÂÌÅÒÅ ÄÌÑ PIC'Á.

AB>> ëÁËÏÊ ÔÏÞÎÙÊ ÐÒÉÍÅÒ. á ÅÓÌÉ ÎÁÏÂÏÒÏÔ? ;) OR> ðÌÏÈÏÊ ÓÉÛÎÙÊ ËÏÍÐÉÌÑÔÏÒ ÄÌÑ AVR ÐÒÏÉ× ÂÅÚÄÁÒÎÏÇÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ÎÁ OR> ÁÓÓÅÍÂÌÅÒÅ ÄÌÑ PIC-Á :-) ?

ðÌÏÈÏÊ ÄÉÚÁÓÓÅÍÂÌÅÒ ÏÔ PIC ÚÁ ÂÅÚÄÁÒÎÏÅ ÓÔÉÒÁÎÉÅ avreal'ÏÍ AVR? âÒÅÄ ËÁËÏÊ... :))) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... íÙ ÎÅ ÍÏÖÅÍ ÖÄÁÔØ ÐÏÞÔÙ ÏÔ ÁÐÌÉÎËÁ. ÷ÚÑÔØ ÅÅ Õ ÎÅÇÏ - ÎÁÛÁ ÚÁÄÁÞÁ.
ðÒÉ×ÅÔ Yuriy!

10 Jul 04 03:34, Yuriy K ÐÉÓÁÌ Yuriy K:

YK> loop; YK> out port, r17 ;1 YK> rjmp loop ;2

YK> out port, r17 ;1 YK> rjmp loop ;2

YK> 2,66íçà @ 16íçÃ.

á ÇÄÅ ÖÅ ÍÅÁÎÄÒ? ôÙ, ÎÁ×ÅÒÎÏÅ, ÈÏÔÅÌ ÓËÁÚÁÔØ

loop: out port, r17 nop nop out port, r18 rjmp loop

÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... óÍÏÔÒÀ ËÕÄÁ ÇÌÁÚÁ ÇÌÑÄÑÔ...

Sat Jul 10 2004 20:08, Alex Mogilnikov wrote to Yuriy K:

YK>> loop; YK>> out port, r17 ;1 YK>> rjmp loop ;2 YK>> out port, r17 ;1 YK>> rjmp loop ;2

YK>> 2,66íçà @ 16íçÃ.

AM> á ÇÄÅ ÖÅ ÍÅÁÎÄÒ? ôÙ, ÎÁ×ÅÒÎÏÅ, ÈÏÔÅÌ ÓËÁÚÁÔØ

AM> loop: AM> out port, r17 AM> nop AM> nop AM> out port, r18 AM> rjmp loop

HÁ ÓÁÍÏÍ ÄÅÌÅ Ñ ÈÏÔÅÌ ÓËÁÚÁÔØ

loop1: out port, r16 ;1 rjmp loop2 ;2 loop2: out port, r17 ;1 rjmp loop1 ;2

ôÁË ÎÁ Ä×Á ÂÁÊÔÁ ËÏÒÏÞÅ. :-))

WBR, àÒÉÊ.

Hi Alexey, hope you are having a nice day!

10 éÀÌ 04, Alexey Boyko wrote to Alexey V Bugrov:

AB>>> åÓÔØ ðéë Ó Ä×ÕÍÑ Input Capture ÎÁ ÏÄÎÏÍ 16-ÂÉÔÎÏÍ ÔÁÊÍÅÒÅ? AB>> ëÏÎÅÞÎÏ. ðÏÞÔÉ ÌÀÂÏÊ Õ ËÏÔÏÒÏÇÏ 2 CCP ÍÏÄÕÌÑ. ïÔ ÞÅÇÏ ÏÎÉ ÂÕÄÕÔ AB>> ÔÁËÔÉÒÏ×ÁÔØÓÑ ÚÁÄÁÅÔÓÑ ÐÒÏÇÒÁÍÍÎÏ. AB> HÁÄÏ, ÞÔÏÂÙ ÏÎÉ ÚÁÈ×ÁÔÙ×ÁÌÉ ÄÁÎÎÙÅ Ó ÏÄÎÏÇÏ ÔÁÊÍÅÒÁ. AB> ÷ÏÔ Õ msp430 Ó ÜÔÉÍ - ÐÏÌÎÙÊ ÐÏÒÑÄÏË, ÎÏ 3-È ×ÏÌØÔÏ×ÏÓÔØ.

HÕ, ÞÔÏÂÙ ÄÁÌÅËÏ ÎÅ ÈÏÄÉÔØ 18F252/452. íÏÄÕÌÉ CCP ÔÁËÔÉÒÕÅÔÓÑ ÏÔ TMR1 É TMR3. ìÉÂÏ ÏÔ ÒÁÚÎÙÈ, ÌÉÂÏ ÏÂÁ ÏÔ ÌÀÂÏÇÏ ÉÚ ÎÉÈ, × ÓÏÏÔ×ÅÔÓÔ×ÉÉ Ó ÒÅÇÉÓÔÒÏÍ T3CON

bit 6-3 T3CCP2:T3CCP1: Timer3 and Timer1 to CCPx Enable bits

1x = Timer3 is the clock source for compare/capture CCP modules 01 = Timer3 is the clock source for compare/capture of CCP2, Timer1 is the clock source for compare/capture of CCP1 00 = Timer1 is the clock source for compare/capture CCP modules

WBR, AVB

Hi Alexey, hope you are having a nice day!

10 éÀÌ 04, Alexey Boyko wrote to Alexander Torres:

AT>> äÁË ÍÎÅ 2ÍÇà ÎÅ ÎÁÄÏ, ÍÎÅ 180ËÇà ÎÁÄÏ ÂÙÌÏ :) ðÒÉÞÅÍ ÉÍÅÎÎÏ ÏÔ AT>> ×ÎÅÛÎÅÇÏ Rc É ÎÉËÁË ÐÏ ÄÒÕÇÏÍÕ, ÎÁ ÂÏÌØÛÕÀ ÞÁÓÔÏÔÕ - Ñ ÂÙ Ë×ÁÒà AT>> ÐÏÓÔÁ×ÉÌ. AB> á ÞÔÏ ðéë ÏÔ ×ÎÅÛÎÅÇÏ RC ÂÏÌØÛÅ 4íçà ÎÅ ÒÁÂÏÔÁÅÔ?

òÁÂÏÔÁÅÔ. ÷ÏÔ ÔÏÌØËÏ ÅÍËÏÓÔÉ ÔÁÍ ÐÏÌÕÞÁÀÔÓÑ ÔÁËÏÇÏ ÐÏÒÑÄËÁ, ÞÔÏ ÌÀÂÁÑ ÈÒÅÎØ ÎÁ ÐÌÁÔÅ ÓÐÏÓÏÂÎÁ ÚÁÍÅÔÎÏ ÉÚÍÅÎÉÔØ ÞÁÓÔÏÔÕ.

WBR, AVB

ðÒÉ×ÅÔ Alexey!

Saturday July 10 2004 11:46, Alexey Boyko wrote to Alexander Torres:

AT>> äÁË ÍÎÅ 2ÍÇà ÎÅ ÎÁÄÏ, ÍÎÅ 180ËÇà ÎÁÄÏ ÂÙÌÏ :) ðÒÉÞÅÍ ÉÍÅÎÎÏ ÏÔ AT>> ×ÎÅÛÎÅÇÏ Rc É ÎÉËÁË ÐÏ ÄÒÕÇÏÍÕ, ÎÁ ÂÏÌØÛÕÀ ÞÁÓÔÏÔÕ - Ñ ÂÙ Ë×ÁÒà AT>> ÐÏÓÔÁ×ÉÌ. AB>

AB> á ÞÔÏ ðéë ÏÔ ×ÎÅÛÎÅÇÏ RC ÂÏÌØÛÅ 4íçà ÎÅ ÒÁÂÏÔÁÅÔ?

819-Ê - ÎÅÔ. ôÏÞÎÅÅ ÒÁÂÏÔÁÔØ ÏÎ ÒÁÂÏÔÁÅÔ, ÎÏ ÐÏ ÓÐÅÃÃÉÆÉËÁÃÉÉ - ÔÏÌØËÏ ÄÏ 4-È. ñ É ÔÁË ÔÁÍ ËÒÁÔËÏ×ÒÅÍÅÎÎÏ ÐÒÅ×ÙÛÁÀ....

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

ðÒÉ×ÅÔ Alexey!

Saturday July 10 2004 11:49, Alexey Boyko wrote to Alexander Torres:

AK>>> ðÏÔÏÍÕ, ÞÔÏ × á÷ò ÔÁÊÍÅÒÏÍ ÜÔÏ ÏÒÇÁÎÉÚÏ×ÁÔØ ÐÒÏÝÅ... AT>> äÁ É ÎÁ ÐÉËÅ ÎÅ ÓÌÏÖÎÅÅ, ÔÏÌØËÏ ×ÏÔ ÔÏÔ ÐÉË, ÎÁ ËÏÔÏÒÏÍ ÜÔÏ ÍÏÖÎÏ, AT>> ÉÌÉ ÔÏÔ á÷ò - ÓÔÏÑÔ ÄÏÒÏÖÅ ÄÏÌÌÁÒÁ :) AB>

AB> óËÏÌØËÏ Õ ×ÁÓ attiny26 ÓÔÏÉÔ?

ïËÏÌÏ 2-È ÄÏÌÌÁÒÏ×. ÷ Ó×ÏÅ ×ÒÅÍÑ (ÎÁ ÐÒÏÛÌÏÊ ÒÁÂÏÔÅ) Õ ÍÅÎÑ ÂÙÌÏ ÎÅÓËÏÌØËÏ ÐÒÏÅËÔÏ× ÎÁ á÷òÁÈ, ÎÏ ÔÏ ÎÅÂÙÌÏ ËÒÕÐÎÏÓÅÒÉÊÎÏÅ ÐÒÏÉÚ×ÏÄÓÔ×Ï, É ÃÅÎÁ ËÏÎÔÒÏÌÌÅÒÁ ÍÎÅ ÂÙÌÁ ÇÌÕÂÏËÏ ÐÏÆÉÇ.

HÁ ÜÔÏÊ ÒÁÂÏÔÅ - ÍÙ ÎÅÓËÏÌØËÏ ÒÁÚ ÐÙÔÁÌÉÓØ ÐÅÒÅÊÔÉ ÎÁ á÷òÙ, ÎÏ ÁÔÍÅÌÏ×ÓËÉÅ ÄÉÌÅÒÙ ÎÅ ÓÍÏÇÌÉ ÄÁÔØ ÐÏÄÈÏÄÑÝÅÊ ÃÅÎÙ.

á ËÏÇÄÁ áÔÍÅÌ ÚÁÑ×ÉÌ Ï ×ÙÐÓËÅ ÎÏ×ÏÇÏ ÞÉÐÁ, ÏÞÅÎ ÎÁÍ ÐÏÄÈÏÄÑÝÅÇÏ - ÍÙ ÄÁÖÅ ÐÏÄÐÉÓÁÌÉ NDA É ÚÁÐÉÓÁÌÉÓØ × ÂÅÔÁÔÅÓÔÅÒÙ. ïÎÉ ÏÂÅÝÁÌÉ × ÔÅÞÎÉÉ ÍÅÓÑÃÁ ÓÜÍÐÌÙ, ×ÓÀ ÄÏËÕÍÅÎÔÁÃÉÀ É ËÒÏÓÓÒÅÄÓÔ×Á. ÕÖÅ ÐÏÌÇÏÄÁ ÐÒÏÛÌÏ, ÏÔ ÎÉÈ ÎÉËÁËÉÈ ÉÚ×ÅÓÔÉÊ. é ÓÁÍÏÅ ÇÌÁ×ÎÏÅ - ËÏÇÄÁ ÐÒÅÄÓÔÁ×ÉÔÅÌØ áÌÔÍÅÌÁ ÎÁÍ ÒÁÓÓËÁÚÙ×ÁÌ ÐÒÏ ÜÔÏÔ ÞÉÐ, ÏÎ ÕÔ×ÅÒÖÄÁÌ ÞÔÏ ÏÎ ÂÕÄÅÔ ÐÏ 80 ÃÅÎÔÏ×, ÞÔÏ ÎÁÓ ÕÓÔÒÁÉ×ÁÌÏ. HÁ ÓÌÅÄÕÀÝÅÊ ×ÓÔÒÅÞÅ (ÕÖÅ ÐÏÓÌÅ ÐÏÄÐÉÓÁÎÉÑ NDA) - ÏÎ ÓÄÅÌÁÌ ËÒÕÇÌÙÅ ÇÌÁÚÁ, É ÓËÁÚÁÌ "ËÁËÉÅ 80 ÃÅÎÔÏ×? ðÒÅÄÐÏÌÁÇÁÅÍÁÑ ÃÅÎÁ ÎÁ ÄÅÓÑÔËÉ ÔÙÓÑÞ - 3 ÄÏÌÌÁÒÁ". úÁ 3 ÄÏÌÌÌÁÒÁ - ÏÎ ÎÁÍ ÎÁÆÉÇ ÎÅ ÎÕÖÅÎ.

AB>

AB> Alexey AB>

AB> -+- GoldED+/LNX 1.1.4.7 AB> + Origin: (2:4624/8.208)

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

ðÒÉ×ÅÔ Artem!

Saturday July 10 2004 14:02, Artem Kamburov wrote to Dima Orlov:

AK> ôÙ ÓÏÂÒÁÌÓÑ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÍÁÈÁÔØ ÎÏÖËÏÊ É ×ÙÄÁ×ÁÔØ ûéí?

ôÁË ûéí-ÔÏ ÁÐÁÒÁÔÎÙÊ,ÐÏÓÌÅ ÔÏÇÏ ËÁË ÕÓÔÁÎÏ×ÉÌ ÅÍÕ ×ÓÅ ÐÁÒÁÍÅÔÒÙ - ÏÔ ÐÒÏÇÒÁÍÍÙ ×ÏÏÂÝÅ ÎÉÞÅÇÏ ÎÅ ÚÁ×ÉÓÉÔ, ÍÏÖÅÛØ ÈÏÔØ goto $ ÄÅÌÁÔØ.

AK> íÅÁÎÄÒÁ ÔÏÇÄÁ Õ ÔÅÂÑ ÔÏÞÎÏ ÎÅ ×ÙÊÄÅÔ 8).

ëÁË Ñ ÌÀÂÌÀ, ËÏÇÄÁ _ÍÎÅ_ ÒÁÓÓËÁÚÙ×ÁÀÔ ËÁË ÒÁÂÏÔÁÀÔ _ÍÏÉ_ ÕÓÔÒÏÊÓÔ×Á! ðÒÅËÒÁÓÎÙÊ ÍÅÁÎÄÒ ×ÙÈÏÄÉÔ, ÎÁ ÍÁËÓÉÍÁÌØÎÏÊ ÞÁÓÔÏÔÅ ÍÁÈÁÎÉÑ ÎÏÖËÏÊ (Ñ ÕÖÅ ÇÏ×ÏÒÉÌ - 180ËÇÃ Õ ÍÅÎÑ), É ûéí ÐÒÉ ÜÔÏÍ ÒÁÂÏÔÁÅÔ.

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Hello, Alexey Boyko !

ëÏÇÄÁ ÅÅ ÓÔÁÎÏ×ÉÔÓÑ ÂÏÌØÛÅ, ÍÅÎÑÅÔÓÑ ÁÒÈÉÔÅËÔÕÒÁ. á ×ÏÔ ËÏÇÄÁ ÅÅ ÍÁÌÏ (Á ÅÅ ÎÅ ×ÓÅÇÄÁ ÎÕÖÎÏ ÍÎÏÇÏ), ÐÒÉÍÅÎÅÎÎÙÊ × pic ÐÏÄÈÏÄ ÏËÁÚÙ×ÁÅÔÓÑ ÕÄÏÂÎÅÊ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Alexey Boyko !

òÅÞØ ÉÄÅÔ Ï pic16F818/819. óÏÏÔ×ÅÔÓÔ×ÅÎÎÏ É ÓÒÁ×ÎÉ×ÁÔØ ÎÕÖÎÏ ËÒÉÓÔÁÌÌÙ ÁÎÁÌÏÇÉÞÎÏÇÏ ÒÁÚÍÅÒÁ É ÃÅÎÙ (ÏËÏÌÏ $1).

ñ ÔÏÖÅ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Alexey Boyko !

ëÓÔÁÔÉ PIC c ãáð ÅÓÔØ (16Ó782), Á á÷ò - ÐÏËÁ ÔÏÌØËÏ ÏÂÅÝÁÎÉÑ. á ×ÎÅÛÎÉÊ - ÄÅÎÅÇ ÓÔÏÉÔ.

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Hello, Alexey Boyko !

äÁ ÂÒÅÄÉÔ ÏÎ, ÎÅ Ï ÞÅÍ ÇÏ×ÏÒÉÔØ ÐÒÏÓÔÏ. ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.

Привет!

Fri Jul 09 2004 11:18, Artem Kamburov wrote to Alexander Golov:

...

AK> Э... Это то PIC18F2331, который на сайте Микрочип указан в цене 5,2$ ? AK> Если да, то "дешевле, быстрее, компактнее" слегка не понял...

Ты прочитай ещё раз то что было написано раньше: PIC18F2331 сделал ненужным внешний АЦП от AD, который стоил столько же сколько 2331 (вот и "дешевле", хотя мне эта дешевизна по барабану в устройстве с себестоимостью в пару тыс. долл.), исчезла необходимость считывания с этого АЦП данных по SPI, а встроенный АЦП имеет FIFO (вот и быстрее, а с учётом повышения частоты выборок до 200 кГц и снижения частоты прерываний до 50 кГц ещё и с меньшей нагрузкой на ядро), ненужность внешнего АЦП и встроенная логика мультиплексирования каналов позволили удалить из устройства одну плату (вот и компактнее).

AK> М-да... Когда все изделие обязано вместиться в себестоимость 10-20$ и AK> функционально превосходить большинство (или все) изделий данного класса AK> цена точно имеет значение.

А когда всё устройство должно вместиться в 20 см3 и работать при ускорениях в

20 тыс. "же", то возникают другие требования, не правда ли? Так что сначала определяем требования, а потом под них реализацию. При требовании к предельной экономии на PIC18 смотреть не нужно (для этого есть PIC16) на ATmega48 можно.

Sun Jul 11 2004 07:20, Dima Orlov wrote to Alexey Boyko:

YK>> P.S. äÁ×ÎÏ Ñ ÁÓÓÅÍÂÌÅÒÏÍ ÎÅ ÂÁÌÏ×ÁÌÓÑ...

ðÏÜÔÏÍÕ ÔÅ, ËÔÏ ÈÏÔÅÌ ÐÏÎÑÔØ, ÐÏÎÑÌÉ. ïÓÔÁÌØÎÙÅ - ÎÕ ÞÔÏ Ö ÐÏÄÅÌÁÔØ... éÔÁË, ËÁË Ñ ÕÖÅ ÐÉÓÁÌ Alex Mogilnikov.

loop1: out port, r16 ;1 rjmp loop2 ;2 loop2: out port, r17 ;1 rjmp loop1 ;2

Fout = Fclk/6

DO> äÁ ÂÒÅÄÉÔ ÏÎ, ÎÅ Ï ÞÅÍ ÇÏ×ÏÒÉÔØ ÐÒÏÓÔÏ.

åÓÌÉ ÆÁËÔÙ ÐÒÏÔÉ×ÏÒÅÞÁÔ ×ÅÒÅ, ÔÅÍ ÈÕÖÅ ÄÌÑ ÆÁËÔÏ×? éÎÔÅÒÅÓÎÏ, ÅÓÔØ ÐÉËÉ, ÒÁÂÏÔÁÀÝÉÅ Ó ×ÎÅÛÎÉÍ RC ÇÅÎÅÒÁÔÏÒÏÍ ÂÏÌØÛÅ 4íçÃ? HÁ×ÓËÉÄËÕ Ñ ÞÔÏ-ÔÏ ÎÅ ÎÁÛÅÌ. éÔÏÇÏ ÄÌÑ ÐÉËÁ ÐÏÌÕÞÁÅÍ ÞÁÓÔÏÔÕ 4/4/6 = 0.166 íçà á÷òÙ Ó ×ÎÅÛÎÉÍ RC ÇÅÎÅÒÁÔÏÒÏÍ ÒÁÂÏÔÁÀÔ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÄÏ 6íçÃ. éÔÏÇÏ ÄÌÑ Á×ÒÁ ÐÏÌÕÞÁÅÍ ÞÁÓÔÏÔÕ 6/6 = 1.000 íçà éÔÁË, ÍÁËÓÉÍÁÌØÎÁÑ ÞÁÓÔÏÔÁ ËÏÔÏÒÕÀ ÍÏÖÎÏ ÇÅÎÅÒÉÔØ á÷òÏÍ ÐÒÉ ÚÁÄÁÎÎÙÈ _ÔÏÂÏÊ_, äÉÍÁ, ÕÓÌÏ×ÉÑÈ - × 6(ÛÅÓÔØ) ÒÁÚ ×ÙÛÅ, ÞÅÍ ÐÉËÏÍ. ëÓÔÁÔÉ, äÉÍÁ, Õ ËÁËÏÇÏ ÐÉËÁ ÅÓÔØ _×ÎÕÔÒÅÎÎÉÊ_ RC ÇÅÎÅÒÁÔÏÒ, ÞÔÏÂÙ ×ÎÅÛÎÉÊ ÎÅ ÇÏÒÏÄÉÔØ? õ Á×ÒÏ× ÅÓÔØ, 1,2,4,8íçÃ. íÏÖÎÏ ÂÕÄÅÔ ÎÅ ÓÔÁ×ÉÔØ ÒÅÚÉÓÔÏÒ É ËÏÎÄÅÎÓÁÔÏÒ, ÓÔÏÌØ ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÐÉËÏ×. üÔÏ Ö ËÁËÁÑ ÜËÏÎÏÍÉÑ ÐÒÉ ×ÁÛÉÈ ÐÁÒÔÉÑÈ. éÎÔÅÒÅÓÎÏ ÐÏÓÌÕÛÁÔØ _ÓÏÄÅÒÖÁÔÅÌØÎÙÅ_ ×ÏÚÒÁÖÅÎÉÑ, äÉÍÁ. íÏÖÅÔ ÂÙÔØ Õ ÔÅÂÑ ÐÏÌÕÞÉÔÓÑ...

WBR, àÒÉÊ.

10-Jul-04 14:57 George Shepelev wrote to Artem Kamburov:

GS> И какие данные ты с него получишь? Отфонарные? ;) ТОЧНО такие же, как на любом 8-битном процессоре от 16-битного таймера без защёлки для "неразрывного чтения". Да, в AVR эта защёлка "отродясь" есть, в MCS51 её нет, в pic16 раньше не было, сейчас не знаю есть ли. Так что чтение 16-битного таймера в два приёма и чтение 8-битного таймера + байта программного расширения не отличаются ничем,

AK>> А за весь период таймера 5 команд выполнить как-то успею. GS> По дороге потеряв перенос в старший байт? Успеешь ;) 5 команд надо как раз для того, чтобы НЕ потерять:

MCS51, 16-битный аппаратный таймер (напоминаю, с точки зрения чтения без остановки ничем не отличается от чтения аппаратного 8-битного таймера и 8-битного программного расширения).

GetPulseCounter: ;;;;;;;;;;; ; u16 GetPulseCounter(void); L?L: mov a, T1H mov R7,T1L cjne a,T1H,L?L mov R6,a ret

AVR, 8-битный таймер и байт программного расширения GetTimer: lds r0,t0high in r24,TCNT0 lds r25,t0high cpse r0,r25 in r24,TCNT0 ret

AK>> Hе таймер, а асинхронный предделитель.

GS> Что ты говоришь? Открываешь доку, к примеру, на PIC12F629 и _внимательно_ GS> изучаешь структуру модуля Timer1. В режиме, когда 16-ти битный таймер GS> подключен через прескалер с коэффициентом деления 1. В синхронном режиме без прескалера период минимум Tcy+40нс = 4Tosc+40нс. У AVR это будет 2Tosc+что-то-там, но у AVR частоты кварца ниже "в среднем", так что приблизительно одинаково. В асинхронном режиме без прескалера период минимум 60нс (с прескалером -

20нс). 60нс это под 17MHz, таймеры в AVR работают только в синхронном (а асинхронные - вход заточен под кварц 32кГц, импульсы подавать не выйдет), так что тут проигрыш.

Касательно частотомеров. Если ограничить отсутстивем внешних делителей, то грубо на AVR @16MHz можно сделать частотомер до эдак 7MHz, на PIC16 - до 50-70. С одной стороны - громадный выигрыш. С другой - диапазон

7..70МГц это узкая ниша даже с точки зрения 0..200Мгц. Тем, кто занимается звуком или источниками питания - за глаза хватит и AVR-овского диапазона. Тем, кто копается в цифре - может понадобиться и 200, ну уж 50-70 точно мало. Кто занимается связью - так там всякое может быть.

Мне так вообще за последние несколько лет частотомер крепко понадобился (осциллографа не хватило :-) только один раз и там надо было померять отношение частот. При периоде меньшей частоты в окрестности пары десятков микросекунд, заполнение - 90, 100MHz. Можно, конечно, кроме внешнего доделивателя ещё схемку на триггере/логике перед пиком прислонить, а смысл? Итог - пик без внешнего предделителя хорош только в КВ диапазоне. А внешний - уж лучше мелкую PLD-ку (а то и FPGA-ку) взять и сделать все основные режимы приличного частотомера (а то и генератор многоканальный туда же запихать). А перед при необходимости ставить головку на каком-нибудь гигагерцовом прескалере. И тогда пофигу какой процессор.

10-Jul-04 14:59 George Shepelev wrote to Alexey Boyko:

AB>> Однако, именно при косвнной адресации линейность памяти востребована AB>> больше всего. Посмотри карту памяти AVR-а.

GS> Давно смотрел. Регистры X, Y, Z состоят из пары 8-ми битных регистров, GS> поэтому если модификация адреса идёт не "подряд" - с линейностью начинаются GS> конкретные проблемы... А, ну да. При малом шаге надо знать про команду adiw r28,const а при большом/переменном вообще тихий ужас add r28, r16 adc r29, r17 просто одуревающие проблемы с линейностью, особенно по сравнению с пиком movfw step addwf FSR,f movlw $20 skpnc addwf FSR,f После чего вспомнить, что выше двухкомандный пример для AVR допускает шаг больше, чем 255, а эти 5 команд для pic и шаг <=255, и IRP не обслуживется, т.е. переход только между банками 0,1 или 2,3, переход между 1,2 или вообще неизвестно пока какой -- будет ещё длиннее. Кто там и что по поводу дутых мипсов говорил? На всякий случай напоминаю - про проблемы при модификации не подряд начал говорить ты.

AB>> А у АВР - бывает и больше. Можно 64К внешнего ОЗУ подключить. AB>> Код не изменится.

GS> Ты с x51 не путаешь? ;-) Нет, конечно. У меня спокойно на 90s8515 висело 32KB SRAM в адресах

0x8000-0xFFFF и ещё под этим окно для доступа к внутренностям альтеры.

GS> Там это было можно, вот только для доступа GS> к внешней памяти использовались _особые_ команды... А у AVR - не нужно. Во внешнюю память даже стек можно затолкать, если скорость не волнует (доступ к внешнему ОЗУ на такт дольше).

AB>> Разве один из операндов не должен быть регистр W? 2Алексей W - это не аккумулятор! Это временный рабочий регистр АЛУ, к которому есть доступ на уровне команд. У пиков просто несколько другая архитектура, попытка рассматривать W как аккумулятор, особенно после i8080/i51 - сильно мешает :-)

AB>> Это же какое "жонглирование" получается через единственной регистр! Тут ты не прав. Некоторое жонглирование начинается при многобайтной арифметике, особенно из-за отсутствия у пик16 сложения/вычитания с переносом, а все одноадресные команды: GS> _Все_ битовые команды работают не используя регистр W. Сдвиги и обмен GS> нибблами, инверсия - тоже (хотя можно результат помещать в W, это вообще GS> уникальная особенность PIC'овской системы команд). Инеременты/декременты, GS> включая те, что с условным выполнением - тоже не используют регистр W.

GS> При использовании AVR все эти действия почти наверняка будут сопряжены GS> с "жонглированием". А при использовании pic16 начинается бег с препятствиями, когда нужен доступ попеременно к port/tris, к находящимся в разных банках SFR, при обращении к коду в другой странице, при чтении таблиц, при работе с двумя массивами. У pic18 много поправили.

AB>> А если наоборот? ;)

GS> Смысл? Программировать AVR на ассемблере крайне неудобно, причины я уже GS> излагал. Программирование на сях для PIC не блещет оптимальностью кода. На PIC на асе писать - одно удовольствие. Пока всё влазит в один банк и в одну страницу. А потом начинаются просто другие трудности. Поработавшему раньше с другой load/store архитектурой - в AVR нет ничего особо неудобного.

p.s. Повторяю - кривизна AVR не там, где ты её показываешь, преимущества "14-битных" пиков, мне кажется, тоже.

ðpÉ×ÅÔ, Yuriy!

*** 11 Jul 04 13:10, Yuriy K wrote to Dima Orlov:

YK> ëÓÔÁÔÉ, äÉÍÁ, Õ ËÁËÏÇÏ ÐÉËÁ ÅÓÔØ _×ÎÕÔÒÅÎÎÉÊ_ RC ÇÅÎÅÒÁÔÏÒ, ÞÔÏÂÙ YK> ×ÎÅÛÎÉÊ ÎÅ ÇÏÒÏÄÉÔØ? õ Á×ÒÏ× ÅÓÔØ, 1,2,4,8íçÃ. íÏÖÎÏ ÂÕÄÅÔ ÎÅ ÓÔÁ×ÉÔØ YK> ÒÅÚÉÓÔÏÒ É ËÏÎÄÅÎÓÁÔÏÒ, ÓÔÏÌØ ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÐÉËÏ×.

Internal RC (ËÁÌÉÂÒÏ×ÁÎÎÙÊ) ÅÓÔØ Õ 12F6xx, Õ 16F62xA ÐÏÑ×ÉÌÓÑ (ÔÏÌØËÏ ÎÅ ÐÏÍÎÀ, ËÁÌÉÂÒÏ×ÁÎÎÙÊ ÌÉ), ÓÅÊÞÁÓ, IMHO, ÏÎ Õ ÂÏÌØÛÅÊ ÞÁÓÔÉ ÎÏ×ÙÈ ÅÓÔØ (ÔÏÌØËÏ Õ ÍÅÎÑ ÔÕÔ ÄÁÔÁÛÉÔÏ× ÎÅÔ ÐÏÄ ÒÕËÏÊ)...

YK> éÎÔÅÒÅÓÎÏ ÐÏÓÌÕÛÁÔØ _ÓÏÄÅÒÖÁÔÅÌØÎÙÅ_ ×ÏÚÒÁÖÅÎÉÑ, äÉÍÁ. YK> íÏÖÅÔ ÂÙÔØ Õ ÔÅÂÑ ÐÏÌÕÞÉÔÓÑ...

òÁÚÍÅÞÔÁÌÓÑ ;) Ó Õ×ÁÖÅÎÉÅÍ ÷ÌÁÄÉÓÌÁ×

Sun Jul 11 2004 14:19, Vladislav Baliasov wrote to Yuriy K:

YK>> ëÓÔÁÔÉ, äÉÍÁ, Õ ËÁËÏÇÏ ÐÉËÁ ÅÓÔØ _×ÎÕÔÒÅÎÎÉÊ_ RC ÇÅÎÅÒÁÔÏÒ, ÞÔÏÂÙ YK>> ×ÎÅÛÎÉÊ ÎÅ ÇÏÒÏÄÉÔØ? õ Á×ÒÏ× ÅÓÔØ, 1,2,4,8íçÃ. íÏÖÎÏ ÂÕÄÅÔ ÎÅ ÓÔÁ×ÉÔØ YK>> ÒÅÚÉÓÔÏÒ É ËÏÎÄÅÎÓÁÔÏÒ, ÓÔÏÌØ ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÐÉËÏ×.

VB> Internal RC (ËÁÌÉÂÒÏ×ÁÎÎÙÊ) ÅÓÔØ Õ 12F6xx, Õ 16F62xA ÐÏÑ×ÉÌÓÑ (ÔÏÌØËÏ ÎÅ VB> ÐÏÍÎÀ, ËÁÌÉÂÒÏ×ÁÎÎÙÊ ÌÉ), ÓÅÊÞÁÓ, IMHO, ÏÎ Õ ÂÏÌØÛÅÊ ÞÁÓÔÉ ÎÏ×ÙÈ ÅÓÔØ VB> (ÔÏÌØËÏ Õ ÍÅÎÑ ÔÕÔ ÄÁÔÁÛÉÔÏ× ÎÅÔ ÐÏÄ ÒÕËÏÊ)...

16F627/628. ÷ÒÏÄÅ ËÁË ÄÏ 8íçà ÄÏÌÖÎÏ ÒÁÂÏÔÁÔØ. üÔÏ ÐÏÌÕÞÉÔÓÑ 8/4/6 = 0,333 íçà ÐÒÏÔÉ× 1íçÃ Õ Á×Ò. ÷ÓÅ ÒÁ×ÎÏ ÍÁÌÏ×ÁÔÏ ÂÕÄÅÔ. :-ò

YK>> éÎÔÅÒÅÓÎÏ ÐÏÓÌÕÛÁÔØ _ÓÏÄÅÒÖÁÔÅÌØÎÙÅ_ ×ÏÚÒÁÖÅÎÉÑ, äÉÍÁ. YK>> íÏÖÅÔ ÂÙÔØ Õ ÔÅÂÑ ÐÏÌÕÞÉÔÓÑ...

VB> òÁÚÍÅÞÔÁÌÓÑ ;)

á ×ÄÒÕÇ? :-)

WBR, àÒÉÊ.

ðÒÉ×ÅÔ Yuriy!

Sunday July 11 2004 15:10, Yuriy K wrote to Dima Orlov:

YK> ðÏÜÔÏÍÕ ÔÅ, ËÔÏ ÈÏÔÅÌ ÐÏÎÑÔØ, ÐÏÎÑÌÉ. ïÓÔÁÌØÎÙÅ - ÎÕ ÞÔÏ Ö ÐÏÄÅÌÁÔØ... YK> éÔÁË, ËÁË Ñ ÕÖÅ ÐÉÓÁÌ Alex Mogilnikov. YK>

YK> loop1: YK> out port, r16 ;1 YK> rjmp loop2 ;2 YK> loop2: YK> out port, r17 ;1 YK> rjmp loop1 ;2 YK>

YK> Fout = Fclk/6

YK> åÓÌÉ ÆÁËÔÙ ÐÒÏÔÉ×ÏÒÅÞÁÔ ×ÅÒÅ, ÔÅÍ ÈÕÖÅ ÄÌÑ ÆÁËÔÏ×? YK>

YK> éÎÔÅÒÅÓÎÏ, ÅÓÔØ ÐÉËÉ, ÒÁÂÏÔÁÀÝÉÅ Ó ×ÎÅÛÎÉÍ RC ÇÅÎÅÒÁÔÏÒÏÍ ÂÏÌØÛÅ 4íçÃ? YK> HÁ×ÓËÉÄËÕ Ñ ÞÔÏ-ÔÏ ÎÅ ÎÁÛÅÌ.

"×ÎÅÛÎÉÍ RC-ÇÅÎÅÒÁÔÏÒÏÍ", ÉÌÉ "×ÎÅÛÎÅÊ RC-ÃÅÐÏÞËÏÊ" ?

YK> éÔÏÇÏ ÄÌÑ ÐÉËÁ ÐÏÌÕÞÁÅÍ ÞÁÓÔÏÔÕ 4/4/6 = 0.166 íçÃ

ô.Å. ÏÄÉÎÁËÏ×Ï.

YK> á÷òÙ Ó ×ÎÅÛÎÉÍ RC ÇÅÎÅÒÁÔÏÒÏÍ ÒÁÂÏÔÁÀÔ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÄÏ 6íçÃ. YK>

YK> éÔÏÇÏ ÄÌÑ Á×ÒÁ ÐÏÌÕÞÁÅÍ ÞÁÓÔÏÔÕ 6/6 = 1.000 íçÃ

úÁÞÅÍ ÓÒÁ×ÎÉ×ÁÔØ ÐÒÉ ÒÁÚÎÙÈ ÞÁÔÓÏÔÁÈ ÑÄÒÁ, ÅÓÌÉ ÒÅÞØ ÛÌÁ Ï ÓÉÓÔÅÍÅ ËÏÍÁÎÄ?!

YK>

YK> éÔÁË, ÍÁËÓÉÍÁÌØÎÁÑ ÞÁÓÔÏÔÁ ËÏÔÏÒÕÀ ÍÏÖÎÏ ÇÅÎÅÒÉÔØ á÷òÏÍ ÐÒÉ ÚÁÄÁÎÎÙÈ YK> _ÔÏÂÏÊ_, äÉÍÁ, ÕÓÌÏ×ÉÑÈ - × 6(ÛÅÓÔØ) ÒÁÚ ×ÙÛÅ, ÞÅÍ ÐÉËÏÍ. YK>

YK> ëÓÔÁÔÉ, äÉÍÁ, Õ ËÁËÏÇÏ ÐÉËÁ ÅÓÔØ _×ÎÕÔÒÅÎÎÉÊ_ RC ÇÅÎÅÒÁÔÏÒ, ÞÔÏÂÙ ×ÎÅÛÎÉÊ YK> ÎÅ ÇÏÒÏÄÉÔØ?

÷ÏÏÂÝÅ-ÔÏ, ÄÁ×ÎÏ ÕÖÅ ÐÏÞÔÉ Õ ×ÓÅÈ.....

YK> õ Á×ÒÏ× ÅÓÔØ, 1,2,4,8íçÃ. íÏÖÎÏ ÂÕÄÅÔ ÎÅ ÓÔÁ×ÉÔØ ÒÅÚÉÓÔÏÒ É YK> ËÏÎÄÅÎÓÁÔÏÒ, ÓÔÏÌØ ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÐÉËÏ×. üÔÏ Ö ËÁËÁÑ ÜËÏÎÏÍÉÑ ÐÒÉ YK> ×ÁÛÉÈ ÐÁÒÔÉÑÈ.

íÏÖÎÏ, ÎÏ ËÏÎËÒÅÔÎÏ ÔÏÔ ÄÅ×ÁÊÓ, Ï ËÏÔÏÒÏÍ Ñ ÇÏ×ÏÒÉÌ - ÒÁÂÏÔÁÔØ ÐÒÉ ÜÔÏÍ ÎÅ ÂÕÄÅÔ, ÈÏÔÑ × 819-Í ×ÎÕÔÒÅÎÎÉÊ ÇÅÎÅÒÁÔÏÒ ÅÓÔØ.

Alexander Torres, 2:461/28 aka 2:461/640.28 aka 2:5020/6400.28 aka snipped-for-privacy@yahoo.com

formatting link
, ftp://altor.sytes.net

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required