AVR vs PIC - Page 3

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

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

Quoted text here. Click to load it

А в 84-м - 1792 байта (1К*14 слов) flash. На 26-ю ведь дали в байтах, а не в
словах (1К*16 слов).

AT> А ты знаешь способ принимать поксаг совсем без коррекции? :)

При нормальном кварце и нормальной связи - элементарно - берешь и затягиваешь
всю колбасу, передаешь ее куда-то, а там разберутся.

                                    АртемКАД





AVR vs PIC
 Здравствуй Alexander , как там виндовс, так же худо ?

 AT>>> Сколько там мозгов в 26-й ?
 VV>>  2k flash/128 RAM
 AT> А в 84-м - 1k flash/36 RAM
[skip]
 AT> Hе помню уже точно деталей, давно это было, свою функцию оно выполняло
 AT> и стандартам соотетствовало - заказчиком пейджинговая компания
 AT> выступала :)))

Внимание вопрос :) Под это дело использовался Си ?


 До встречи, не скучай...

AVR vs PIC
Привет Igor!

Wednesday June 23 2004 08:58, Igor Myslovsky wrote to Alexander Torres:

 IM>  Здравствуй Alexander , как там виндовс, так же худо ?
 IM>
 AT>>>> Сколько там мозгов в 26-й ?
 VV>>>  2k flash/128 RAM
 AT>> А в 84-м - 1k flash/36 RAM
 IM>
 IM> [skip]
 IM>
 AT>> Hе помню уже точно деталей, давно это было, свою функцию оно
 AT>> выполняло и стандартам соотетствовало - заказчиком пейджинговая
 AT>> компания выступала :)))
 IM>
 IM> Внимание вопрос :) Под это дело использовался Си ?

Я уже отвечал на этот вопрос - Си, с ассемблерными вставками, как обычно.

А чем вызван этот вопрос? Я много реалтаймовых вещей на чистом Си писал, что на
работе что для хобби - вон недавно написал универсальный приемник ИК-пультов
ДУ, пока на 5 стандартов, будет больше. Вообще на чистом Си, без ассемблерных
вставок совсем.


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



AVR vs PIC
 Здравствуй Alexander , как там виндовс, так же худо ?

 AT>>> А в 84-м - 1k flash/36 RAM

 AT> А чем вызван этот вопрос? Я много реалтаймовых вещей на чистом Си
Вопрос не о том, что это невозможно написать на С, а в том, что при таком
ограничении ресурсов (в частности по ОЗУ) и ограничении архитектуры(1 РОH),
писать на Си с асм вставками может оказаться более трудоемкая задача, чем
писать просто на Асм.


 AT> писал, что на работе что для хобби - вон недавно написал универсальный
 AT> приемник ИК-пультов ДУ, пока на 5 стандартов, будет больше. Вообще на
 AT> чистом Си, без ассемблерных вставок совсем.
Когда достаточно ресурсов, кто ж спорит :)



 До встречи, не скучай...

Re: AVR vs PIC
Hello, Igor!
You wrote to Alexander Torres on Thu, 24 Jun 2004 09:06:53 +0400:

 IM>  Здравствуй Alexander , как там виндовс, так же худо ?

 AT>>>> А в 84-м - 1k flash/36 RAM

 AT>> А чем вызван этот вопрос? Я много реалтаймовых вещей на чистом Си
 IM> Вопрос не о том, что это невозможно написать на С, а в том, что при
 IM> таком ограничении ресурсов (в частности по ОЗУ) и ограничении
 IM> архитектуры(1 РОH), писать на Си с асм вставками может оказаться
 IM> более трудоемкая задача, чем писать просто на Асм.

Ты очень ошибаешся, если думаешь что для написания на Си нужно кардинально
больше реурсов, чем для написания на ассемблере.
Я и на том и на том достаточно писал.

 AT>> писал, что на работе что для хобби - вон недавно написал
 AT>> универсальный приемник ИК-пультов ДУ, пока на 5 стандартов, будет
 AT>> больше. Вообще на чистом Си, без ассемблерных вставок совсем.
 IM> Когда достаточно ресурсов, кто ж спорит :)

Это было на 73-м, и заняло весьма скромную часть его ресурсов - 622 ячейки
программы и 25 байт ОЗУ,
так что и в 84-й это не только влезло-бы, но еще и место осталось :)

With best regards, Alex Torres.



AVR vs PIC
Hello, Igor Myslovsky !

 >  AT>>> А в 84-м - 1k flash/36 RAM

 >  AT> А чем вызван этот вопрос? Я много реалтаймовых вещей на чистом Си
 > Вопрос не о том, что это невозможно написать на С, а в том, что
 > при таком ограничении ресурсов (в частности по ОЗУ) и ограничении
 > архитектуры(1 РОH),
 > писать на Си с асм вставками может оказаться более трудоемкая
 > задача, чем писать просто на Асм.

Hе может, как факт. Я и для 12F675 на С пишу, а ресурсы его посмотри сам.


С уважением, Дима Орлов.


AVR vs PIC
Hello, Vladimir Vassilevsky !

 >  VV>>  Какая разница. Все равно и то и другое программировать нужно на C.
 >  MP> А много можно было на 12с508 на С напрограмировать? Умная выключалка то
 >  MP> хоть влезает?

 >  Вот именно. Hа ATtiny26 ценой $1.5 вполне можно писать на C.

Hа PIC12F675 (и аналогичных pic16 в восьминогом корпусе) пишется на С также,
как и на всех остальных pic16.

 >  Притом в tiny помещаются вполне серьезные задачи. Hапример,
 > пейджер POCSAG.
 >  Что можно сделать на флешевой пичине за такую же цену, особенно
 > если писать  на сях? Разве что мигалку для елочной гирлянды.

Я не знаю что такое пейджер поцсаг, но делал отнюдь не елочные гирлянды, а
например контроллер балласта с радиоуправлением. Еще делал контроллер аварийной
накальной лампы (стабилизатор 180-305В в 120В). Кстати стабильность
пиковского RC в разы лучше авровского, авр паяльником подогреваешь и на скопе
видно как ползет частота, у пика ничего подобного нет. Да и по даташиту тоже
самое. А вот мигалку (Fan control) таки на 508 делали. Разумеется все на С.

С уважением, Дима Орлов.


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

Quoted text here. Click to load it

Хм, а где это ты такой АВР нашел, случайно не 90S1200 (брось эту каку - уже есть
лучше)?  Или у тебя скоп 1-2% уход частоты видит? :-)

                                    АртемКАД



AVR vs PIC

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


Вторник Июнь 22 2004 02:10, Vladimir Vassilevsky wrote to Maxim Polyanskiy:

 MP>> А много можно было на 12с508 на С напрограмировать? Умная
 MP>> выключалка то хоть влезает?
 VV>  Вот именно. Hа ATtiny26 ценой $1.5 вполне можно писать на C.
 VV>  IAR дает оверхед по обьему порядка ~ 4/3 по сравнению с ручным кодом.
 VV>  Притом в tiny помещаются вполне серьезные задачи. Hапример, пейджер
 VV> POCSAG. Что можно сделать на флешевой пичине за такую же цену,

 Так, смотрим потребление:

 ATtiny26
Idle 4 МГц  3 В     2 мА
Idle 8 МГц  5 В     7 мА
 4 МГц      3 В     6 мА
 8 МГц      5 В    15 мА


 PIC16F628A:
32 кГц      3 В     0,025 мА
32 кГц      5 В     0,048 мА
 4 МГц      3 В     0,47 мА
 4 Мгц      5 В     0,78 мА
20 МГц      5 В     3,3 мА



 Рассказать про область применения микропотребляющих устройств, или сам
догадаешься?


                                                   Георгий


AVR vs PIC
Hello George
GS>  ATtiny26
GS> Idle 4 МГц  3 В     2 мА
GS> Idle 8 МГц  5 В     7 мА
GS>  4 МГц      3 В     6 мА
GS>  8 МГц      5 В    15 мА


GS>  PIC16F628A:
GS> 32 кГц      3 В     0,025 мА
GS> 32 кГц      5 В     0,048 мА
GS>  4 МГц      3 В     0,47 мА
GS>  4 Мгц      5 В     0,78 мА
GS> 20 МГц      5 В     3,3 мА

GS>  Рассказать пpо область пpименения микpопотpебляющих устpойств, или сам
GS> догадаешься?

А это пpавда что частоту PIC надо делить на 12 чтобы получить эквивалентную
частоту AVR? AVR выполняют по одной команде на тактовый имульс, а вот PIC
насколько я знаю - нет.

        

Re: AVR vs PIC
Привет, 23 июня 2004 г., 9:29:11, ты писал(а):

SM> AVR выполняют по одной команде на тактовый имульс

от одного до трех тактов на команду.

Всего хорошего.




--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

AVR vs PIC
Hello, Sergey Moskovchenko !

 > А это пpавда что частоту PIC надо делить на 12 чтобы получить
 > эквивалентную частоту AVR?

Hет, не правда. PIC выполняет команду за 4 такта генератора.


С уважением, Дима Орлов.


AVR vs PIC
Wed Jun 23 2004 12:32, Dima Orlov wrote to Sergey Moskovchenko:

 
 >> А это пpавда что частоту PIC надо делить на 12 чтобы получить
 >> эквивалентную частоту AVR?

 DO> Hет, не правда. PIC выполняет команду за 4 такта генератора.

 Это недокоманды. Так что в ~10 раз медленнее, чем AVR - реальная оценка.
 Хотя, смотря какая задача.

 VLV
 

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


AVR vs PIC
                           Пpивет, Vladimir!

*** 23 Jun 04 14:38, Vladimir Vassilevsky wrote to Dima Orlov:

 DO>> Hет, не правда. PIC выполняет команду за 4 такта генератора.

 VV>  Это недокоманды. Так что в ~10 раз медленнее, чем AVR - реальная
 VV> оценка.

Hет, никоим образом. Эффективность кода - того же порядка. А, к примеру,
подергать ножкой порта - всего лишь вдвое медленее при равной тактовой.

 VV>  Хотя, смотря какая задача.

Вот именно. Если потребуется буферизация более-менее значительных объемом
данных, то PIC отстанет многократно из-за проблем с адресацией. Если же нужно
что-то типа плавучки - AVR не спасет даже вчетверо большая скорострельность,
все уйдет на перезагрузку регистров.

                                      с уважением Владислав

Re: AVR vs PIC
VV>>  Хотя, смотря какая задача.

VB> Вот именно. Если потребуется буферизация более-менее значительных
объемом
VB> данных, то PIC отстанет многократно из-за проблем с адресацией.

ну в 18х нет этих проблем. тем более табличные операции аппаратно
делаются

--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

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

Quoted text here. Click to load it

Вот я и говорю - смотрим на PIC18х и усмехаемся - они все ближе подбираются к
AVR-ам. По сути осталось только довести до ума таймеры ...

                                АртемКАД




Re: AVR vs PIC
AK>> данных, то PIC отстанет многократно из-за проблем с адресацией.
AK>>
AK>> ну в 18х нет этих проблем. тем более табличные операции аппаратно
AK>> делаются

AK> Вот я и говорю - смотрим на PIC18х и усмехаемся - они все ближе
подбираются к
AK> AVR-ам. По сути осталось только довести до ума таймеры ...

а в чем, конкретно, по-твоему, таймеры в пиках не доведены до ума?

--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

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

Quoted text here. Click to load it

В возможностях :). Одного компаратора на таймер маловато. Да и PWM-режимов
иногда надо больше одного простейшего.

                                АртемКАД








Re: AVR vs PIC
AK>> AK> Вот я и говорю - смотрим на PIC18х и усмехаемся - они все ближе
AK>> подбираются к
AK>> AK> AVR-ам. По сути осталось только довести до ума таймеры ...
AK>>
AK>> а в чем, конкретно, по-твоему, таймеры в пиках не доведены до ума?

AK> В возможностях :). Одного компаратора на таймер маловато. Да и PWM-
режимов
AK> иногда надо больше одного простейшего.

Функции таймера выполняют? Выполняют. "Так чего же тебе еще надо,
хороняка" ("ИВмп") ;-) А extended mode - так надо брать соотв. камень
(и не пик, и, возможно, не авр)

--
Rifkat < Team /Grave\ >
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

AVR vs PIC
Wed Jun 23 2004 15:04, Vladislav Baliasov wrote to Vladimir Vassilevsky:

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

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


void main(void)
{
unsigned long bchword;

bchword = 0x06;

CorrectBCH(&bchword);
}
 
/*
Extended code BCH 32.21 correction using Meggit theorem
C source code (c)VLV
The BCH 32.21 codeword is treated as unsigned long int
The function corrects up to 2 errors and detects at least 3 errors.
The return value is amount of errors (0,1,2).
If the error is not correctable, return value is 0xFF and the codeword
is not changed.
*/


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

//----------- The correction function -------------------

unsigned char CorrectBCH(unsigned long int * bchword)
{


static unsigned int syndtable[31] =
 {
 0x200,0x300,0x280,0x240,0x220,0x210,0x208,0x204,
 0x202,0x201,0x1b4,0x3da,0x2ed,0x1c2,0x3e1,0x144,
 0x3a2,0x2d1,0x1dc,0x3ee,0x2f7,0x1cf,0x053,0x09d,
 0x0fa,0x37d,0x10a,0x385,0x176,0x3bb,0x169
 };



unsigned char ci,cj,parity;
unsigned int syndrome;
unsigned long int dataword;


// delete parity bit

dataword=(*bchword)&0xfffffffelu;

// Calculate the syndrome

for(ci=0;ci<31;ci++)
 {
 if(dataword&0x80000000lu) dataword^=0xed200000lu;
 dataword<<=1;
 }

// Right align

syndrome=(unsigned int)(dataword>>22);

// Calculate parity

dataword=*bchword;
parity=0;

while(dataword)
 {
 parity^=dataword&1;
 dataword>>=1;
 }

// Zero syndrome - no errors or error in parity bit

if(!syndrome)
 {
 if(!parity) return 0;  // No errors
 (*bchword)^=1;         // Correct parity
 return 1;
 };

// Nonzero syndrome - Iterative search of errors


for(ci31%;ci!=0;ci--)   //  Cycle for all bits except parity
 {
  for(cj=0;cj<ci;cj++)  // Table search
  {
   if(syndrome==syndtable[cj])  // Error position found
    {
    if(!cj)    // Single error?
     {
     InvertBit(bchword,ci);
     if(parity==1) return 1; // no error in parity
     (*bchword)^=1;         // Correct parity
     return 2;
     }
    if(parity) return 0xff; // More then 2 errors - uncorrectable
    InvertBit(bchword,ci);     //Correct double error
    InvertBit(bchword,ci-cj);
    return 2;
    }
  }
 syndrome<<=1;                // Recalculate the syndrome for next iteration
 if(syndrome&0x400) syndrome^=0x369;
 syndrome&=0x3ff;
 }
return 0xFF;                 // Error position not found - uncorrectable
}

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


Site Timeline