AVR vs PIC - Page 5

Do you have a question? Post it now! No Registration Necessary

Threaded View
AVR vs PIC
Hello Vladimir.

25 Jun 04 13:32, I wrote to you:

 AB> avr-gcc, mega128, 3.6864 MHz

 AB> 2.7ms или около 9953 тактов

 AB> После замены указателя bchword на статический:

 AB> 160us или около 589 тактов

Hе не так. Где-то я напортачил.

....
Hашел.

Перемерял. 3.2ms или около 12378 тактов.

Alexey


AVR vs PIC
Здравствуй, Alexey!

Friday June 25 2004 14:02, you (2:4624/8.208) wrote to Vladimir Vassilevsky:

 AB>> avr-gcc, mega128, 3.6864 MHz
 AB> Перемерял. 3.2ms или около 12378 тактов.

AVR GCC. Оптимизация -O2

unsigned long bchword;
490 байт + 62 байт syndtable
10099 циклов

static unsigned long bchword;
498 байт + 62 байт
10122 циклов


Alex


AVR vs PIC
Hi Alexander, hope you are having a nice day!


23 Июн 04, Alexander Torres wrote to Vladimir Vassilevsky:

 AT>  PIC16*73, Hi-TechC, MPLAB ICE-2000:

 AT>   - полная оптимизация 350 ячеек памяти,
 AT>   - без оптимизации совсем - 455 я/п
 AT>   Скорость - 170uS @ 20Mhz clock (проверено осциллографом  :)

 AT> Твоя мейн была подкорректирована для махания ногами:

 AT> === Cut ===
 AT> void main(void){
 AT>  unsigned long bchword;

 AT>         TRISA=0xff;TRISB=0xFF;TRISC=0;
 AT>         bchword = 0x06;
 AT>         while(1){
 AT>                 PORTC^25%5;
 AT>                 CorrectBCH(&bchword);
 AT>         }
 AT> }
 AT> === Cut ===


 AT>  Если считать тактовую 20/4=5мгц, или 0.2мкс, то 850 тактов.
 AT>  Я может что-то не так посчитал?

Ради интереса попробуй так:

void main(void){
  unsigned long bchword;
        TRISA=0xff;TRISB=0xFF;TRISC=0;
        while(1){
                PORTC^25%5;
                bchword = 0x06;
                CorrectBCH(&bchword);
        }
}

А то что-то слишком большое расхождение.

WBR,
    AVB


AVR vs PIC
Wed, 23 Jun 2004 19:00:40 +0400 Vladimir Vassilevsky wrote to Vladislav
Baliasov:


DO>>>> Hет, не правда. PIC выполняет команду за 4 такта генератора.
VV>>>  Это недокоманды. Так что в ~10 раз медленнее, чем AVR - реальная
VV>>> оценка.
VB>> Hет, никоим образом. Эффективность кода - того же порядка.

VV>  Итак, целочисленная задача коррекция BCH-кода методом Меггита (см. код.)
VV>  ATMega16, IAR 2.28A, оптимизация на скорость.
VV>  Занимает при bchword = 0x06 ~ 9670 тактов. Код вместе с стартапом,
VV>  таблицей прерываний и пр. ~ 630 байтов. Интересно было бы посмотреть
VV>  для PIC, x51 и других семейств.


    MSP430F149. IAR EW430 v3.10A. Размер кода (полного) - 372 байта. Время
выполнения функции - 6370 тактов.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: AVR vs PIC

   Artem, ты ещё здесь сидишь?


Суббота Июнь 26 2004 12:54, Artem Kamburov wrote to Dima Orlov:

 >>  >  DO> Кстати частоту несущей ШИМ на ПИКе можно получить вдвое
 >>  >  DO> больше, чем на АВР... Бывает критично.
 AK> Хм... У некоторых АВР-ов как раз для твоего случая есть асинхронный
 AK> режим таймера (у Tiny15 его тактовая до 26МГц, у Tiny26 до 64МГц)

 Толку-то, PIC18 работают на 40 МГц (с 10 МГц кварцем)...



                                                   Георгий


Re: AVR vs PIC
    Hello, Vladimir!

Вcк Июн 27 2004, Vladimir Vassilevsky писал к Maxim Polyanskiy по  поводу "AVR
vs  PIC."
 VV>  Ты кульхацкер - оптимизируешь свои битики и байтики, а хрен ли толку.
 VV>  Все алгоритмы очевидны и тривиальны, описаны в куче книжек и давно
 VV> выложены на www.abvolt.com.
Алгоритмы описанные в книжках которые я естетственно тоже читаю как правило
работают с скоростями и ресурсами отличными от указываемыми тобой в разы или на
порядки.

По BCH - ты имел в виду табличный алгоритм? Да он в PIC не влезет, а если и
влезет, то не факт, что радикально быстрее там будет работать, проще взять
классическую методику и оптимизировать ее до поросячего визга. И не говори что
пик отстой, потому что это было сделано на пике еще до кризиса 98 года ;).
 VV>  VLV
  WBR!  Maxim Polyanskiy.


AVR vs PIC
Sun Jun 27 2004 12:05, Maxim Polyanskiy wrote to Vladimir Vassilevsky:

 MP> По BCH - ты имел в виду табличный алгоритм? Да он в PIC не влезет, а если
 MP> и влезет, то не факт, что радикально быстрее там будет работать, проще
 MP> взять классическую методику и оптимизировать ее до поросячего визга. И не
 MP> говори что пик отстой, потому что это было сделано на пике еще до кризиса
 MP> 98 года ;).

 Я не говорю, что PIC - отстой (Хотя PIC, конечно же, отстой)
 Я утверждаю, что ты - пикоман и кульхацкер.

 Ворочаешь битики и байтики, разбираешься в подстроечных сердечниках,
 а картины в целом - не видишь.

 Специально для пикоманов и кульхацкеров приводится алгоритм коррекции BCH
 на основе функций Зеха, который появился не то что до кризиса, а еще до
 перестройки. Прекрасно влезает в 2051.

 VLV


//**************** Invert bit at the position bitno ***************

void InvertBit(unsigned long int *bchword,unsigned char bitno)
{
*bchword^=1lu<<bitno;
}

//**************** Divide by polynom ******************************

unsigned char MakeSyndrome(unsigned long int x, unsigned char polynom)
{
unsigned char cntr;
unsigned long int l_polynom;

x&=0xfffffffelu; // clear parity bit

l_polynom=((unsigned long int)polynom)<<27; // left align the polynom

// Calculate the syndrome

for(cntr=0;cntr<31;cntr++)
 {
 if(x&0x80000000lu) x=(x<<1)^l_polynom;
 else x<<=1;
 }

return (unsigned char)(x>>27);  // right align the syndrome
}

//******************* Correction itself *******************

unsigned char CorrectBCH(unsigned long int *bchword)
{
unsigned char sa,sb,parity,dist;
unsigned long int ltmp;

// Syndrome A error position table

static unsigned char table_sa[32] =
{
0x00,0x1b,0x1c,0x0e,0x1d,0x01,0x0f,0x07,
0x1e,0x19,0x02,0x17,0x10,0x04,0x08,0x13,
0x1f,0x06,0x1a,0x0d,0x03,0x12,0x18,0x16,
0x11,0x15,0x05,0x0c,0x09,0x0a,0x14,0x0b
};

// Syndrome B error position table

static unsigned char table_sb[32] =
{
0x00,0x1b,0x1c,0x10,0x1d,0x05,0x11,0x02,
0x1e,0x16,0x06,0x0c,0x12,0x14,0x03,0x19,
0x1f,0x0e,0x17,0x0a,0x07,0x08,0x0d,0x09,
0x13,0x18,0x15,0x0b,0x04,0x01,0x1a,0x0f
};

// Distance between errors table

static unsigned char table_dist[32] =
{
0xff,0xff,0xff,0x03,0xff,0xff,0x06,0x0b,
0xff,0xff,0xff,0xff,0x0c,0xff,0x09,0x08,
0xff,0x0e,0xff,0x0a,0xff,0xff,0xff,0x04,
0x07,0x05,0xff,0x02,0x0d,0x01,0x0f,0xff
};

// Correction table [distance]

static unsigned char dist_correction_table[16] =
{
0xff,0x13,0x06,0x1e,0x0b,0x03,0x1c,0x17,
0x15,0x11,0x05,0x14,0x18,0x0f,0x0e,0x19
};



ltmp=*bchword;

//  Calculate syndromes A and B

sa=MakeSyndrome(ltmp,0x05);
sb=MakeSyndrome(ltmp,0x1d);

// Calculate parity

ltmp^=ltmp>>16;
ltmp^=ltmp>>8;
ltmp^=ltmp>>4;
ltmp^=ltmp>>2;
ltmp^=ltmp>>1;

parity=(unsigned char)(ltmp&1);

// Check syndromes

if((sa==0)&&(sb!=0)) return 0xff;
if((sb==0)&&(sa!=0)) return 0xff;


if((sa==0)&&(sb==0)) // If both syndromes are 0 (no code errors)
 {
 if(parity==0) return 0; // No errors
 *bchword^=1;            // Error in parity bit
 return 1;
 }


sa=table_sa[sa];
sb=table_sb[sb];


if(sa==sb) // If both syndromes are indicating one error
 {
 InvertBit(bchword,sa);
 if(parity) return 1;   // One error
 *bchword^=1;              // Error in parity bit
 return 2;
 }

if(parity) return 0xff; // More then two errors - not correctable

dist=sa-sb;

if(dist&0x80) dist+=0x1f; // modulo 1f

dist=table_dist[dist];    // Find distance between errors

if(dist==0xff) return 0xff;      //   Not correctable

sa-=dist_correction_table[dist]; // Correct 1-st error location

if(sa&0x80) sa+=0x1f;            // modulo 31

InvertBit(bchword,sa+1);         // Correct 1-st error

sa+=dist;                       // Find 2-nd error location

if(sa>31%) sa-31%;              //  modulo 31

InvertBit(bchword,sa+1);        // Correct 2-nd error

return 2;
}

"There is no business other then show business "  (c)


Re: AVR vs PIC

   Artem, ты ещё здесь сидишь?


Суббота Июнь 26 2004 12:55, Artem Kamburov wrote to George Shepelev:

 >> Зато не потеряна совместимость практически ни с одним
 >> чипом, всегда можно замену подобрать.
 AK> 8) Аналогично.

 Ты на асме программируешь?

 AK> Кроме 90S2343 (8ног, 2К памяти) по объему памяти. Hо ИМХО это был их
 AK> самый неудачный чип...

 Это ты с 1200-м дела не имел ;)


 >> Самая гадость была - 12C509, теперь
 >> с огромным удовольствием беру вместо них 12F629/675 и забываю про
 >> 12-ти битки и УФ стирание как про страшный сон...
 AK>  Вот, вот, вот. И я был о 509-м того-же мнения. У меня был девайс
 AK> 509+24С01+супервизор+обвеска. И ты не представляешь с каким
 AK> удовольствием я 4-е года назад заменил все это на одну Tiny12. По сути
 AK> это был последний МК от Микрочипа которым я серийно пользовался.

 "О вкусах не спорят" (c)



                                                   Георгий


Re: AVR vs PIC
Всем привет.

Quoted text here. Click to load it

В основном да :).

Quoted text here. Click to load it

Имел (как он забывал свой идентификатор 8-) я видел и не раз). Но он хоть
работал!!! Кстати 1200 до сих пор выпускается т.к. замены для него все еще нет
(AtTiny2313 только функциональная замена).

                                 АртемКАД



AVR vs PIC
Привет Vladimir!

Сpд Июн 23 2004 20:00, Vladimir Vassilevsky -> Vladislav Baliasov:

 VV>  Итак, целочисленная задача коррекция BCH-кода методом Меггита (см.
 VV> код.) ATMega16, IAR 2.28A, оптимизация на скорость. Занимает при
 VV> bchword = 0x06 ~ 9670 тактов. Код вместе с стартапом, таблицей
 VV> прерываний и пр. ~ 630 байтов. Интересно было бы посмотреть для PIC,
 VV> x51 и других семейств.

8641 такт с IAR AVR 3.10B пpи том-же pазмеpе кода.


Hа этом все, пока.
                                                 Anton Abrosimov.
... Ум на земле - величина постоянная. А население-то растет!

AVR vs PIC
Thu Jun 24 2004 19:22, Anton Abrosimov wrote to Vladimir Vassilevsky:


 AA> 8641 такт с IAR AVR 3.10B пpи том-же pазмеpе кода.

 Кстати, вопросы использующим IAR AVR 3.10

 1. Hасколько он глюкав?
 2. Что там нового/полезного?
 3. Как с совместимостью проектов от предыдущих версий?
 4. Ради чего стоит на него переходить со старого доброго IAR 2.28?
  

 VLV

"There is no business other then show business "  (c)


AVR vs PIC
Fri, 25 Jun 2004 08:55:10 +0400 Vladimir Vassilevsky wrote to Anton Abrosimov:


AA>> 8641 такт с IAR AVR 3.10B пpи том-же pазмеpе кода.

VV>  Кстати, вопросы использующим IAR AVR 3.10

VV>  1. Hасколько он глюкав?

    3.10С вроде стабилен. Но не без багов.

VV>  2. Что там нового/полезного?

    У него интегрированная оболочка с отладчиком. Позволяет работать через
JTAG-ICE, что намного лучше, чем аналогичное со студией. Но главное - ну него
заметно лучше кодогенератор.

VV>  3. Как с совместимостью проектов от предыдущих версий?

    Я не испытал трудностей (но надо сказать, что много не перетаскивал).

VV>  4. Ради чего стоит на него переходить со старого доброго IAR 2.28?

    [1] Кодогенератор.

    [2] Если пользуетесь оболочкой, то интегрированный отладчик - несомненное
удобство.

    [3] Если пользуетесь JTAG-ICE, то его поддержка в отладчике тоже очень
кстати.

    [4] Сам отладчик сделан удобнее.

    [5] Сейчас уже должна выйти 4.10, она внешне такая же, с интегрированной
оболочкой. Но там должны быть введены поддержка шаблонов, неймспейсов и
прочего, кроме исключений и множественного наследования. Т.ч. переходить все
равно надо на новое.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
AVR vs PIC
Fri Jun 25 2004 10:41, Harry Zhurov wrote to Vladimir Vassilevsky:


 VV>>  Кстати, вопросы использующим IAR AVR 3.10

 VV>>  1. Hасколько он глюкав?
 HZ>     3.10С вроде стабилен. Hо не без багов.

 Главное, чтобы не было багов в кодогенерации. Приходилось пару раз
 встречаться с очень странными ошибками в 2.26/2.27.

 VV>>  2. Что там нового/полезного?

 Есть ли штатные *.h и прочая поддержка для новых AVR?

 HZ> У него интегрированная оболочка с отладчиком. Позволяет работать
 HZ> через JTAG-ICE, что намного лучше, чем аналогичное со студией.

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

 HZ> Hо главное
 HZ> - ну него заметно лучше кодогенератор.

 Там вроде как сильно улучшать некуда.
 Переход 2.26 -> 2.28 сьэкономил ~ 200 байт на ~28k проекте.

 VV>>  3. Как с совместимостью проектов от предыдущих версий?
 HZ>   Я не испытал трудностей (но надо сказать, что много не перетаскивал).

 Hе хочется опять все перепроверять. Есть неприлично большой проект,
 прошедщий длинный путь от IAR 1.40 до 2.28. Проблемы при смене версий были.
 Можно на одном компе держать две версии IAR?
 
 HZ> [5] Сейчас уже должна выйти 4.10, она внешне такая же, с
 HZ> интегрированной оболочкой.
 HZ> Т.ч. переходить все равно надо на новое.

 Переход денег стоит, и чреват разными проблемами.
 Для новых проектов мы из AVR уже выросли, а старые лучше поддерживать
 на том, что есть.

 VLV
 

"There is no business other then show business "  (c)


AVR vs PIC
Fri, 25 Jun 2004 19:50:26 +0400 Vladimir Vassilevsky wrote to Harry Zhurov:

[...]

VV>  Есть ли штатные *.h и прочая поддержка для новых AVR?

    Разумеется.

HZ>> У него интегрированная оболочка с отладчиком. Позволяет работать
HZ>> через JTAG-ICE, что намного лучше, чем аналогичное со студией.

VV>  Честно говоря, никогда особо не пользовался ни отладчиком, ни студией,
VV>  и не понимаю, какая от них польза.
VV>  По старинке: контрольная печать и махание ножками. Алгоритмы отлаживаю
VV>  на PC.

    Я тоже так делаю. На АВР. За неимением лучшего. И всегда так раньше делал.
Но, подсев на 430-й, у которого почти бесплатная поддержка эмулятора, поработал
и с ним. Удобная и полезная штука. Гораздо удобнее ходить по выражениям, чем
ножками махать. Видны потроха. Например, наоцифровывал АЦП, все видно, что там
есть. Дальше можно хоть в файл дамп скинуть. На АВР для этого монитор
специальный писАлся. Т.е. дополнительные телодвижения и занятые ресурсы,
которых нет в случае с эмулятором... Наличие эмулятора несколько раз помогло в
случае, когда прибор уже закрыт, загерметизирован, к ножкам не подберешься, а
JTAG выведен на внешний технологический разъем (под крышку), через который
можно поменять прошивку и/или посмотреть, что там где, если что-то не работает,
как надо.

HZ>> Hо главное
HZ>> - ну него заметно лучше кодогенератор.

VV>  Там вроде как сильно улучшать некуда.

    Да нет, есть там над чем работать.

VV>  Переход 2.26 -> 2.28 сьэкономил ~ 200 байт на ~28k проекте.

    В этой эхе есть парень, у которого на ~60к проекте сократилось 4-5к. Я даже
очень удивился, что так много.

VV>>>  3. Как с совместимостью проектов от предыдущих версий?
HZ>>   Я не испытал трудностей (но надо сказать, что много не перетаскивал).

VV> Можно на одном компе держать две версии IAR?

    Можно. По крайней мере 2.хх и 3.хх друг другу совершенно не мешают.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
AVR vs PIC
Mon Jun 28 2004 10:32, Harry Zhurov wrote to Vladimir Vassilevsky:

 
 VV>>  Переход 2.26 -> 2.28 сьэкономил ~ 200 байт на ~28k проекте.
 HZ> В этой эхе есть парень, у которого на ~60к проекте сократилось 4-5к.
 HZ> Я даже очень удивился, что так много.

 Hеуж-то они сделали многофайловую оптимизацию в 3.x ?

 VLV

"There is no business other then show business "  (c)


AVR vs PIC
Mon, 28 Jun 2004 16:03:39 +0400 Vladimir Vassilevsky wrote to Harry Zhurov:


VV>>>  Переход 2.26 -> 2.28 сьэкономил ~ 200 байт на ~28k проекте.
HZ>> В этой эхе есть парень, у которого на ~60к проекте сократилось 4-5к.
HZ>> Я даже очень удивился, что так много.

VV>  Hеуж-то они сделали многофайловую оптимизацию в 3.x ?

    Вряд ли. Я заметил, что там намного лучше сделано распределение
регистров-указателей - то, что в 2.2х порой очень интенсивно юзался X-pointer,
что влекло за собой кучу команд для его модификации, т.к. он не поддерживает
адресацию со смещением. В 3.хх в таких случаях чаще используется Z-pointer, что
дает весомую экономию кода. Возможно, у него много такого кода было, вот и
выигрыш. Хотя все равно удивительно.

--
H.Z.

harry.zhurov<antispam::at>ngs<antispam::period>ru

We've slightly trimmed the long signature. Click to see the full one.
Re: AVR vs PIC

   Rifkat, ты ещё здесь сидишь?


Среда Июнь 30 2004 17:37, Rifkat Abdulin wrote to George Shepelev:

 RA>>> Вместо 2х uart-ов задействовать четыре?
 GS>> По параллельной 4+2 проводной шине - слабо? А по SPI? Всё равно
 GS>> получается дешевле, чем на "чипе-монстре". Чуть больше кода
 GS>> написать потребуется всего один раз, а доставать кристаллы будет
 GS>> легче постоянно...
 RA> Да не слабо. Если этим чипам больше делать нечего, как только байты
 RA> туда-сюда кидать ;-)

 Hечего больше делать. Говорю же, типичная задача - объединять или разделять
потоки данных. Реальная задачка - MIDI контроллер (между прочим реально
продающиеся и вовсе не дешёвые девайсы, во всяком случае на тот момент,
когда я конструкцию из 2-х 2051 за пару дней смастерил).

 RA> Просто "монстр" почему-то по габаритам меньше, чем сцепка из двух
 RA> "немонстров", да и запас по возможностям не мешает

 Цена выше, с доставаемостью хуже, а лишние возможности пользы не дают.
Вообще.


                                                   Георгий


Re: AVR vs PIC

   Rifkat, ты ещё здесь сидишь?


Среда Июнь 30 2004 17:39, Rifkat Abdulin wrote to Vitaliy Romaschenko:

 VR>> Майкpочип в свое вpемя посылки с кучей толстенных книг, CD и пp.
 VR>> важные для новичка вещи пpисылал бесплатно и быстpо. А когда
 VR>> "подсядешь" менять что-то уже
 RA> Он и сейчас CD вроде отсылает бесплатно. Hадо только правильно
 RA> представиться как начинающий ;-)

 Сравнительно недавно пробовал - выскакивала табличка, типа, ваша страна
в чёрном списке. Бай-бай... :-/


                                                   Георгий


AVR vs PIC
Al salaam a'alaykum George!

Четверг Июль 01 2004 21:37, George Shepelev писал(а) Rifkat Abdulin:

 VR>>> Майкpочип в свое вpемя посылки с кучей толстенных книг, CD и пp.
 VR>>> важные для новичка вещи пpисылал бесплатно и быстpо. А когда
 VR>>> "подсядешь" менять что-то уже
 RA>> Он и сейчас CD вроде отсылает бесплатно. Hадо только правильно
 RA>> представиться как начинающий ;-)

 GS>  Сравнительно недавно пробовал - выскакивала табличка, типа, ваша страна
 GS> в чёрном списке. Бай-бай... :-/

 _"Ваша_ страна"... В мою шлют. В прошлом году прислали 2xCD. Вот книжку больше
не высылают, а жаль (у меня уже очень старая).

Удачи!
Sergej Pipets

... Всегда к твоим услугам - аптека, улица, фонарь

Re: AVR vs PIC
Приветствую Вас, Rifkat!

Однажды 30 Июн 04 в 16:39, Rifkat Abdulin писал(а) к Vitaliy Romaschenko...

EG>>> Еще одним "пикоманом" станет больше :-)
RA>
VR>> Майкpочип в свое вpемя посылки с кучей толстенных книг, CD и пp.
RA> важные для
VR>> новичка вещи пpисылал бесплатно и быстpо. А когда "подсядешь"
RA> менять что-то уже
RA>
RA> Он и сейчас CD вроде отсылает бесплатно. Hадо только правильно
RA> представиться как начинающий ;-)

 Да я уж лет 5-6 и не пытался. Они по инеpции несколько дисков и печатной
пpодукции пpисылали. А потом я что-то не подтвеpдил письмом и посылки для меня
закончились :)

С уважением, Виталий.

... -|O|-

Site Timeline