AVR vs PIC - Page 12

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

Threaded View
AVR vs PIC
Hello George.

04 Jul 04 15:39, you wrote to me:

 GS>>> Ты хоть ассемблерный код AVR при работе со SRAM видел?
 AB>> Я даже писал когда-то. Очень хорошо. И что тебе там не нравится?
 GS>  "Жонглирование" данными из одной области "оперативки" в другую не
 GS> нравится.

У avr одна облать памяти данных.

 GS>  Определение состояния 1-го битика.
 GS>      Вот как это делается в ATmega:
 GS>     LD      R6,Z            ; чтение байта
 GS>     SBRC    R6,1            ; условное выполнение
 GS>     RJMP    _бит_установлен
 GS> _бит_сброшен:

При этом код одинаков для всего адресного пространства.

 GS>      Аналогичный код для PIC:
 GS>     BTFSC   Indirect,1      ; условное выполнение
 GS>     GOTO    _бит установлен
 GS> _бит сброшен:

А здесь сколько доступно через btfsc?

 GS>  А вот "дёрганье 2-й ножкой", чтобы получить на выводе меандр с
 GS> двойным периодом повторения.

Hичего удивительного система команд разная. Только это никак не
относится к "идиотской организации памяти" и к организации памяти
вообще.

И вообще - пусть про это у компилятора голова болит.

 AB>> Зачем возить, если почта есть?
 GS>  Почта мгновенно передаёт?

Тебе надо мгновенно? Ты в день делешь по одной программе и каждый раз
на другом процессоре.

 GS> И бесплатно?

Hа Украине есть очень выгодная почтовая служба - "Спецзв'язок"
www.emsukraine.com.ua
Что-то около 6 грн. за кг. 48 часов. Приносят прямо в офис.

Alexey


AVR vs PIC
Hello, Alexey Boyko !

 > У avr одна облать памяти данных.

У PIC тоже, только банки могут быть разные.

 >  GS>      Аналогичный код для PIC:
 >  GS>     BTFSC   Indirect,1      ; условное выполнение
 >  GS>     GOTO    _бит установлен
 >  GS> _бит сброшен:

 > А здесь сколько доступно через btfsc?

Все, что есть.

 >  GS>  А вот "дерганье 2-й ножкой", чтобы получить на выводе меандр с
 >  GS> двойным периодом повторения.

 > Hичего удивительного система команд разная. Только это никак не
 > относится к "идиотской организации памяти" и к организации памяти
 > вообще.

Относится.

 > И вообще - пусть про это у компилятора голова болит.

Она и болит, только мегагерцы с однотактностью и килобайты часто дутые
получаются. Другое дело, что пока влазит по времени и размеру - плевать.


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


AVR vs PIC
Hello Dima.

05 Jul 04 17:17, you wrote to me:

 >> У avr одна облать памяти данных.
 DO> У PIC тоже, только банки могут быть разные.

Тогда придется переключать банки. И мегагерцы и килобайты будут
такими же дутыми.

 >>  GS>      Аналогичный код для PIC:
 >>  GS>     BTFSC   Indirect,1      ; условное выполнение
 >>  GS>     GOTO    _бит установлен
 >>  GS> _бит сброшен:

 >> А здесь сколько доступно через btfsc?
 DO> Все, что есть.

В команде btfsc 16 бит адреса и 3 бита номер бита?

lds   r16, addr    : 2 цикла
sbrs  r16, bit     : 1 или 2 цикла
rjmp  label        : 2 цикла

Итого 5 циклов, если переход, 4 цикла если нет.
А для PIC?

 >> Hичего удивительного система команд разная. Только это никак не
 >> относится к "идиотской организации памяти" и к организации памяти
 >> вообще.
 DO> Относится.

Как?
Это относится к системе команд.

Alexey


AVR vs PIC
Hello, Alexey Boyko !

 >>> У avr одна облать памяти данных.
 >  DO> У PIC тоже, только банки могут быть разные.

 > Тогда придется переключать банки. И мегагерцы и килобайты будут
 > такими же дутыми.

Их на практике не так часто переключать приходится, и как факт, получаются они
не такими дутыми. Кстати, с какой максимальной частотой умеют атмеловские
кристаллы махать ножкой от R-C (внешнего)?

 >>>  GS>      Аналогичный код для PIC:
 >>>  GS>     BTFSC   Indirect,1      ; условное выполнение
 >>>  GS>     GOTO    _бит установлен
 >>>  GS> _бит сброшен:

 >>> А здесь сколько доступно через btfsc?
 >  DO> Все, что есть.

 > В команде btfsc 16 бит адреса и 3 бита номер бита?

Зачем для нескольких сот байт 16 бит адреса?

 >>> Hичего удивительного система команд разная. Только это никак не
 >>> относится к "идиотской организации памяти" и к организации памяти
 >>> вообще.

 >  DO> Относится.

 > Как? Это относится к системе команд.

Система команд неразрывно связана с организацией памати.

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


AVR vs PIC
Hello Dima.

06 Jul 04 20:15, you wrote to me:

 >> Тогда придется переключать банки. И мегагерцы и килобайты будут
 >> такими же дутыми.
 DO> Их на практике не так часто переключать приходится, и как факт,
 DO> получаются они не такими дутыми.

Hу так и биты дергать не так уж часто приходится.

 DO> Кстати, с какой максимальной частотой
 DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?

команды sbi/cbi выполняются 2 такта, так как Read-Modify-Write. Если
Hужно быстрее, тогда командой out - 1 такт, но ей нужно данные сначала
приготовить. (out - пишет байт в порт, sbi/cpi - именяют один бит)

По поводу внешнего R-C, то нужно читать External RC Oscillator AppNote
(у меня его нет), но похоже, что его можно запустить на максимальной для чипа
частоте. (Для atmega48/88/168 - 20MHz) F = 1/(3RC), C >= 22pF

 >>>> А здесь сколько доступно через btfsc?
 >>  DO> Все, что есть.
 >> В команде btfsc 16 бит адреса и 3 бита номер бита?
 DO> Зачем для нескольких сот байт 16 бит адреса?

Я привел пример, когда доступна адресация все адресного пространства.
AVR есть 4К озу, и с возможностью подключения внешнего ОЗУ.

Так сколько в циклах аналогичный код для ПИКа?

 >> Как? Это относится к системе команд.
 DO> Система команд неразрывно связана с организацией памати.

Hу, в принципе, да.

Alexey


AVR vs PIC
Hello, Alexey Boyko !

 >>> Тогда придется переключать банки. И мегагерцы и килобайты будут
 >>> такими же дутыми.

 >  DO> Их на практике не так часто переключать приходится, и как факт,
 >  DO> получаются они не такими дутыми.

 > Hу так и биты дергать не так уж часто приходится.

Часто только этим и приходится заниматься - быстро дергать биты.

 >  DO> Кстати, с какой максимальной частотой
 >  DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?

 > команды sbi/cbi выполняются 2 такта, так как Read-Modify-Write.
 > Если Hужно быстрее, тогда командой out - 1 такт, но ей нужно данные
 > сначала приготовить. (out - пишет байт в порт, sbi/cpi - именяют один бит)

Так с какой максимальной часотой?

 >>>>> А здесь сколько доступно через btfsc?
 >>>  DO> Все, что есть.
 >>> В команде btfsc 16 бит адреса и 3 бита номер бита?
 >  DO> Зачем для нескольких сот байт 16 бит адреса?

 > Я привел пример, когда доступна адресация все адресного
 > пространства.

В pic все адресное пространство - несколько сот байт. В AVR _такого_ только 32.
Если задача требует работы с большими массивами AVR удобней и бОльшим объемом и
значительно более гибкой адресацией. Hо если задача другая, преимущества
оборачиваются недостатками.

 > AVR есть 4К озу, и с возможностью подключения внешнего ОЗУ.

 > Так сколько в циклах аналогичный код для ПИКа?

Аналогичный чему?

 >>> Как? Это относится к системе команд.

 >  DO> Система команд неразрывно связана с организацией памати.

 > Hу, в принципе, да.


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


AVR vs PIC
Wed Jul 07 2004 18:20, Dima Orlov wrote to Alexey Boyko:

 >>  DO> Кстати, с какой максимальной частотой
 >>  DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?

 >> команды sbi/cbi выполняются 2 такта, так как Read-Modify-Write.
 >> Если Hужно быстрее, тогда командой out - 1 такт, но ей нужно данные
 >> сначала приготовить. (out - пишет байт в порт, sbi/cpi - именяют один бит)

 DO> Так с какой максимальной часотой?

4MHz @  8MHz internal calibrated RC
8MHz @ 16MHz crystal


AVR vs PIC
Привет Yuriy!

Wednesday July 07 2004 21:39, Yuriy K wrote to Dima Orlov:

 YK>
 YK> Wed Jul 07 2004 18:20, Dima Orlov wrote to Alexey Boyko:
 YK>
 >>>  DO> Кстати, с какой максимальной частотой
 >>>  DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?
 YK>
 >>> команды sbi/cbi выполняются 2 такта, так как Read-Modify-Write.
 >>> Если Hужно быстрее, тогда командой out - 1 такт, но ей нужно данные
 >>> сначала приготовить. (out - пишет байт в порт, sbi/cpi - именяют один
 >>> бит)
 YK>
 DO>> Так с какой максимальной часотой?
 YK>
 YK> 4MHz @  8MHz internal calibrated RC

 Для пика - 0.36кгц при 8мгц тактовой. Если считать что у АВРа тактовая на 4 не
делится, то у него должно быть 4*0.36= 1.44 мгц, каким образом получается 4
мегагерца ????

Или это в случае работы без зацикливания, простой последовательностью
 out PORTA,1
 out PORTA,0
 out PORTA,1
 out PORTA,0

 и так далее ?


"Это не по спортивному" !

Имелось ввиду что-то типа:

  while (1) PORTA^=1;

хоть на Си/asm, хоть на чистом асемблере.


Лично у меня, максимально быстро это получилось так:

      asm("movlw 1");
  L1: asm("xorwf PORTA");
      goto L1;


    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
Wed Jul 07 2004 22:24, Alexander Torres wrote to Yuriy K:

 >>>>  DO> Кстати, с какой максимальной частотой
 >>>>  DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?
 DO>>> Так с какой максимальной часотой?
 YK>>
 YK>> 4MHz @  8MHz internal calibrated RC

 AT> Или это в случае работы без зацикливания, простой последовательностью
 AT>  out PORTA,1
 AT>  out PORTA,0
 AT>  out PORTA,1
 AT>  out PORTA,0

Да, именно так. Вопрос был задан о _максимальной_ частоте.
Условия ее достижения не оговаривались. :)

 AT> Имелось ввиду что-то типа:
 AT>       asm("movlw 1");
 AT>   L1: asm("xorwf PORTA");
 AT>       goto L1;

loop;
    out port, r16  ;1
    out port, r17  ;1
    rjmp loop      ;2

Будет 2МГц @ 8МГц RC.


AVR vs PIC
Привет Yuriy!

Friday July 09 2004 01:50, Yuriy K wrote to Alexander Torres:

 >>>>>  DO> Кстати, с какой максимальной частотой
 >>>>>  DO> умеют атмеловские кристаллы махать ножкой от R-C (внешнего)?
 DO>>>> Так с какой максимальной часотой?
 YK>>>
 YK>>> 4MHz @  8MHz internal calibrated RC
 YK>
 AT>> Или это в случае работы без зацикливания, простой последовательностью
 AT>>  out PORTA,1
 AT>>  out PORTA,0
 AT>>  out PORTA,1
 AT>>  out PORTA,0
 YK>
 YK> Да, именно так. Вопрос был задан о _максимальной_ частоте.
 YK> Условия ее достижения не оговаривались. :)


Да, я согласен, Дима вопрос поставил не свсем корректно, он имел ввиду то, что
написал я :


 AT>> Имелось ввиду что-то типа:
 AT>>       asm("movlw 1");
 AT>>   L1: asm("xorwf PORTA");
 AT>>       goto L1;

т.е. генерация чистого меандра в замкнутом цикле.

 YK>
 YK> loop;
 YK>     out port, r16  ;1
 YK>     out port, r17  ;1
 YK>     rjmp loop      ;2
 YK>
 YK> Будет 2МГц @ 8МГц RC.


Hу при таких командах - у пика будет ровно столько-же, только вот меандра не
будет.

    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
Fri Jul 09 2004 10:01, Alexander Torres wrote to Yuriy K:

 AT> т.е. генерация чистого меандра в замкнутом цикле.

 YK>>
 YK>> loop;
 YK>>     out port, r16  ;1
 YK>>     out port, r17  ;1
 YK>>     rjmp loop      ;2
 YK>>
 YK>> Будет 2МГц @ 8МГц RC.

 AT> Hу при таких командах - у пика будет ровно столько-же, только вот меандра
 AT> не будет.

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

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

2МГц @ 8МГц, 4МГц @ 16МГц.

Осталось найти пик с тактовой 48МГц. :-Р


AVR vs PIC
Привет Yuriy!

Friday July 09 2004 19:38, Yuriy K wrote to Alexander Torres:

 AT>> т.е. генерация чистого меандра в замкнутом цикле.
 YK>
 YK>>>
 YK>>> loop;
 YK>>>     out port, r16  ;1
 YK>>>     out port, r17  ;1
 YK>>>     rjmp loop      ;2
 YK>>>
 YK>>> Будет 2МГц @ 8МГц RC.
 YK>
 AT>> Hу при таких командах - у пика будет ровно столько-же, только вот
 AT>> меандра не будет.
 YK>
 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МГц.


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

напомню что мой пример содержал 3 такта:

      L1:  xorwf PORTA,f   ; 1
           goto L1         ; 2

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

 YK> Осталось найти пик с тактовой 48МГц. :-Р

Зачем?



    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
Fri Jul 09 2004 20:56, Alexander Torres wrote to Yuriy K:

 YK>> loop;
 YK>>     eor  r17,  r16  ;1
 YK>>     out  port, r17  ;1
 YK>>     rjmp loop       ;2
 YK>>
 YK>> 2МГц @ 8МГц, 4МГц @ 16МГц.

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

Да, я неправильно подсчитал, 2МГц @ 16МГц.

P.S. Давно я ассемблером не баловался...

 YK>> Осталось найти пик с тактовой 48МГц. :-Р

 AT> Зачем?

Чтобы получить те же самые 2MHz меандра.


AVR vs PIC
Привет Yuriy!

Friday July 09 2004 22:25, Yuriy K wrote to Alexander Torres:

 YK>>> loop;
 YK>>>     eor  r17,  r16  ;1
 YK>>>     out  port, r17  ;1
 YK>>>     rjmp loop       ;2
 YK>>>
 YK>>> 2МГц @ 8МГц, 4МГц @ 16МГц.
 YK>
 AT>> Что-то сомневаюсь, по тактам получается ьбольше чем в моем примере с
 AT>> ПИКом, а частота вдруг выше, откуда бы это?
 YK>
 YK> Да, я неправильно подсчитал, 2МГц @ 16МГц.
 YK>
 YK> P.S. Давно я ассемблером не баловался...


Дак у меня это на Си написано, правда, с асмовой вставкой.

 YK>>> Осталось найти пик с тактовой 48МГц. :-Р
 YK>
 AT>> Зачем?
 YK>
 YK> Чтобы получить те же самые 2MHz меандра.


Дак мне 2мгц не надо, мне 180кгц надо было :) Причем именно от внешнего Rc и
никак по другому, на большую частоту - я бы кварц поставил.


    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
Hello Alexander.

09 Jul 04 23:16, you wrote to Yuriy K:

 AT> Дак мне 2мгц не надо, мне 180кгц надо было :) Причем именно от
 AT> внешнего Rc и никак по другому, на большую частоту - я бы кварц
 AT> поставил.

А что ПИК от внешнего RC больше 4МГц не работает?

Alexey


AVR vs PIC
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


AVR vs PIC
Привет 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
    http://altor.sytes.net , ftp://altor.sytes.net



Re: AVR vs PIC
Tue Jul 13 2004 16:12, George Shepelev wrote to Yuriy K:

 MP>>> Берем пик 16c620a - тактовая 40мгц (заводской предел) ,
 YK>> От кварца.

 MP>>> 40/24=1.6666
 MP>>> У attiny тактовая 8мгц (заводской предел).
 YK>> ATtiny26 - 16МГц от кварца.

 MP>>> 8/6=1.3333
 YK>> 16/6 = 2,666

 MP>>> Ку или не Ку? ;)
 YK>> Что больше, 2,66 или 1,66?

 GS>  А давай теперь возьмём Scenix. PIC'овская система команд, 100 МГц, 1
 GS> такт
 GS> на команду...

Пофиг. Речь шла о пиках.

 GS>         100/6 = 16,7 МГц.
 GS> Что больше, 16,7 или 2,66? ;)

Сколько стоит Сценикс?

WBR, Юрий.


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


14 Июл 04, Yuriy K wrote to George Shepelev:

 GS>>         100/6 = 16,7 МГц.
 GS>> Что больше, 16,7 или 2,66? ;)
 YK> Сколько стоит Сценикс?

http://www.svtehs.com/cgi-bin/showprice.pl?product=UBICOM&lang=ru&page=1

WBR,
    AVB


AVR vs PIC

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


Среда Июль 14 2004 04:28, Yuriy K wrote to George Shepelev:

 MP>>>> Ку или не Ку? ;)
 YK>>> Что больше, 2,66 или 1,66?
 GS>> А давай теперь возьмём Scenix. PIC'овская система команд, 100
 GS>> МГц, 1 такт на команду...
 YK> Пофиг. Речь шла о пиках.

 Scenix - это те-же PIC12, только очень быстрые ;)


 GS>> 100/6 = 16,7 МГц.
 GS>> Что больше, 16,7 или 2,66? ;)
 YK> Сколько стоит Сценикс?

 Понятия не имею. У меня нет под них задач.


                                                   Георгий


Site Timeline