AVR vs PIC

Jun 20, 2004 Last reply: 21 years ago 988 Replies
14-Jul-04 10:26 Alexander Derazhne wrote to Oleksandr Redchuk:

AD> Если ты про меня, то почти угадал :-). Но тут просматривается больше AD> чем AD> одна проблема. С одной стороны, наличие двух методов доступа к SFR в Никаких двух методов! 64-байтовое пространство SFR убрать начисто вместе с командами in, out, sbi, cbi, sbis, sbic! Даёшь *((volatile unsigned short*)0177700) = 0; !

AD> В принципе, можно было-бы: AD> а) унифицировать распределение бит в регистрах для однотипной AD> периферии; О чём и речь.

AD> потребовать формального наличия регистров старшего байта у T0 и т.д. AD> (7-ой AD> бит - готовность, 6-ой - разрешение прерывания... не, ну это уже в AD> перебор AD> :-))) ); AD> б) перераспределить регистры по адресам, выделив бит-манипулируемые AD> в отдельное пространство; Не нужно. У мелких и так всё влезет в одну зону на Y, у толстых всё равно не будет кусков программы, где надо сразу со всей периферией работать.

AD> г) в косвенно-адресуемом пространстве (РОН+SFR+ОЗУ) перераспределить AD> регистры для достижения регулярности, сгруппировав их не по принципу AD> бит-доступности, а по принадлежности к тому или иному блоку. SFR как отдельное пространство давить. Команды работы с ними зря жрут пространство кодов. А группировка вполне нужна, и если бит разрешения прерывания от любого периферийного узла (пусть TIMER0) и бит флага его прерывания будут не невесть где рядом с флагами других таймеров, а в его регистрах, то тогда вся работа с ним гарантированно влезет в одно окно на указателе. Что-то типа horisontal windowing в 196-ых, только сделанное через что-то типа их vertical windowing :-)

wbr, p.s. кстати, насколько я помню, arm gcc в пределах функции несколько последовательных обращений к регистрам периферии вполне собирает в кучки, доступные в пределах одного окна, один раз загружает какой-то регистр адресом начала этого окна и спокойно адресуется смещениями. То же было бы и тут, просто окно поуже :-)

Wed, 14 Jul 2004 19:01:26 +0000 (UTC) Oleksandr Redchuk wrote to "Artem Kamburov" snipped-for-privacy@i.com.ua>:

[...]

AK>> îÅ, Ä×Á ÓÔÅËÁ ÜÔÏ ÔÁËÁÑ ÆÉÞÁ ÄÌÑ ËÏÍÐÉÌÑÔÏÒÁ. ó ÎÉÍÉ ÕÄÏÂÎÅÅ ÒÁÂÏÔÁÔØ. AK>> ðÒÉÞÅÍ AK>> ÐÒÁËÔÉÞÅÓËÉ ÎÁ ÌÀÂÏÍ ÞÉÐÅ ÇÄÅ ÔÁËÏÅ ×ÏÚÍÏÖÎÏ. GCC ÐÒÏÓÔÏ ÎÁÓÌÅÄÕÅÔ AK>> ÐÏÄÈÏÄ ÄÌÑ È86-ÇÏ. OR> ÷ ÏÂÝÅÍ ÄÁ. ÷ ÓÍÙÓÌÅ gcc ÔÏÖÅ ÎÅ ÐÒÁ× × ÎÅËÏÔÏÒÏÊ ÍÅÒÅ, ÔÁË ËÁË OR> ÒÁÚÄÅÌØÎÙÅ ÓÔÅËÉ ÄÁÎÎÙÈ É ÕÐÒÁ×ÌÅÎÉÑ ÄÁÀÔ ×ÏÚÍÏÖÎÏÓÔØ ÄÅÌÁÔØ OR> ÎÅËÏÔÏÒÙÅ ×ÅÝÉ ÏÐÔÉÍÁÌØÎÅÅ.

ôÙ ÉÍÅÅÛØ × ×ÉÄÕ AVR ÉÌÉ ×ÏÏÂÝÅ? åÓÌÉ ×ÏÏÂÝÅ, ÔÏ ÎÅ ÕÔÏÞÎÉÛØ, ËÁËÉÅ "ÎÅËÏÔÏÒÙÅ ×ÅÝÉ"?

Wed, 14 Jul 2004 15:00:04 +0400 Alexey Boyko wrote to Harry Zhurov:

AB> ÷ IAR ÚÁÄÅÊÓÔ×ÕÅÔÓÑ ÎÁÍÅÒÔ×Ï ÕËÁÚÁÔÅÌØ Y, ËÏÔÏÒÙÈ É ÔÁË ÎÅ ÍÎÏÇÏ. AB> á ÖÏÐÁ Ó SP ÐÏÌÕÞÁÅÔÓÑ ÔÏÌØËÏ ÅÓÌÉ ÒÁÚÍÅÒ ÁÒÇÅÍÅÎÔÏ× É ÌÏËÁÌØÎÙÈ ÐÅÒÅÍÅÎÎÙÈ AB> ÐÒÅ×ÙÛÁÅÔ ËÏÌÉÞÅÓÔ×Ï ÒÅÇÉÓÔÒÏ×. óËÏÒÅÅ ×ÓÅÇÏ ÜÔÁ ÆÕÎËÃÉÑ ÔÁËÁÑ ÖÉÒÎÁÑ, ÞÔÏ AB> ÒÁÚÍÅÒ ÐÒÏÌÏÇÁ/ÜÐÉÌÏÇÁ ÔÅÒÑÅÔÓÑ ÎÁ ÆÏÎÅ ÏÔÁÌØÎÏÇÏ ËÏÄÁ ÆÕÎËÃÉÉ.

ôÅÍ ÎÅ ÍÅÎÅÅ éáòÏ×ÓËÉÊ ÐÏÄÈÏÄ × ÃÅÌÏÍ ÚÁÍÅÔÎÏ ÜÆÆÅËÔÉ×ÎÅÅ. óÔÅË ÎÕÖÅÎ ÎÅ ÔÏÌØËÏ ËÏÇÄÁ scratch (ÎÅÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ËÏÎÞÉÌÉÓØ, ÎÏ É: [1] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÏÂßÅËÔÙ ÁÇÒÅÇÁÔÎÙÈ (ÍÁÓÓÉ×Ù, ÓÔÒÕËÔÕÒÙ) É ËÌÁÓÓ ÔÉÐÏ× - ÏÎÉ × ÓÔÅËÅ ÒÁÚÍÅÝÁÀÔÓÑ. [2] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ, ÏÂßÑ×ÌÅÎÎÙÅ ËÁË volatile. [3] ëÏÇÄÁ ÎÕÖÎÏ local (ÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ÉÓÐÏÌØÚÏ×ÁÔØ, ÉÈ ÚÎÁÞÅÎÉÅ ÓÏÈÒÁÎÑÅÔÓÑ × ÓÔÅËÅ. [4] ðÒÉ ×ÈÏÄÅ × ÐÒÅÒÙ×ÁÎÉÅ ×ÓÅ ÉÓÐÏÌØÚÕÅÍÙÅ ÒÅÇÉÓÔÒÙ ÔÁËÖÅ ÓÏÈÒÁÎÑÀÔÓÑ × ÓÔÅËÅ. [5] ðÒÉ ÐÅÒÅÄÁÞÅ × ÆÕÎËÃÉÀ ÌÏËÁÌØÎÙÈ ÍÁÓÓÉ×Ï×. ÷Ï ×ÓÅÈ ÜÔÉÈ ÓÌÕÞÁÑÈ Õ éáòÁ ×ÓÅ ÒÁÂÏÔÁÅÔ ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ, Á GCC ÐÒÉÈÏÄÉÔÓÑ ÕËÁÚÁÔÅÌØ ÓÔÅËÏ×ÏÇÏ ËÁÄÒÁ ËÁÖÄÙÊ ÒÁÚ ÇÏÒÏÄÉÔØ. îÅ ×ÅÒÉÛØ ÍÎÅ, ×ÏÚØÍÉ É ÓÁÍ ÓÒÁ×ÎÉ.

Добрый день.

[skip]

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

8-) Я по полу катался от смеха - объясни мне, Георгий, зачем ловить каждый бит таймера, чтобы затем отобразить 8-значный результат в виде "4-ех значащих цифр". На такое, похоже, только у тебя ума может хватить. 8-) У тебя получается не просто "дешевый" во всех отношениях частотомер, а вообще детский, для детей до 3-ех лет. 8-)

На AVR, даже на 8-ми битном таймере никаких потерь нет и быть не может. Любые задержки (на вход в прерывание и выполнение команд) вычисляются после пуска таймера/счетчика внешних событий путем выполнения некоторого кол-ва команд с нужным кол-вом тактов и чтения таймера. Получаешь фактически отношение измеряемой частоты к тактовой. В самом прерывании по переполнению таймера всего две команды - инкримент старшей половины и возврат из прерывания. После остановки таймера вычисленная задержка вычитается из

16-битного числа. Все! У меня по этому принципу 8-ми битный таймер вычисляет скорость манчестера-II и корректирует "ход часов" на своей стороне с точностью до двух тактов тактовой частоты, т.е. частота передатчика может плавать в пределах +-40-50% от номинала без всяких проблем с приемом такого сигнала. И это работает, причем на дохлом по периферии AT90S1200 с одним единственным 8-ми разрядным таймером, расширенным программно до 16-ти разрядов.

В твоем случае "с 4-мя значащими цифрами" они не будут мельтешить даже при потере 4 младших бит результата. 8-)

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

Никакой ошибки не появится - это все твое больное воображение и неумение думать головой при написании программы на конкретном контроллере.

Весь вопрос - зачем вообще останавливать таймер? Закончилось одно измерение, скорректировали результат, обнулили таймер и его старшую часть в РОН и готовим вывод на экран, закончилось очередное измерение и все сначала.

Правильный вопрос, только ты его себе задай сначала.

AVR на 8МГц за период измерения 1 мс успевает сделать 4-8 тыс. команд что с запасом хватает для всех расчетов и вывода вычисленного значения на экран в режиме динамической индикации.

Остановка таймера - не кривое решение. Нет. Оно - больное. 8-)

Не надо проблемы PIC приписывать метро. 8-) В AVR не требуется остановка таймера и в этом его плюс - распараллеливание работы за счет более высокой скорости, хотя и в ущерб потреблению. Однако лично меня потребление почти не интересует - батарейки AAA и AA стоят практически одинаково.

8-) Для этого сначала ты должен понять, что частоту можно измерять не останавливая таймер и накапливая результаты последовательных измерений для пользы дела - показа "дрожания" частоты, если таковое имеется, или для "уточнения" результата до еще одной "последней" цифры. Только ведь ты этого не поймешь, потому что "уперт" на своем "абсолюте"...

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

[skip]

Нет там никаких проблем - ты просто не умеешь пользоваться таймером. Причем даже 16-ти разрядным, не говоря уже про 8-ми разрядный даже в "родном" для тебя PIC, не говоря уже про AVR.

А тебе не приходило в голову, что любой интервал считается элементарно по тактам и при работе любой программы на любом контроллере нет ни одного неизвестного, которое может дать значимую ошибку? Кол-во переполнений таймера известно? Известно - оно в tmr0h. Время входа в прерывание, работы в нем и выхода из него известно? Безусловно. Так откуда берется надуманная тобой ошибка? [skip]

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

В случае с AVR тоже никаких проблем нет - если уж тебе так хочется останавливать таймер, то в прерывании переполнения просто корректируется на _известное_ число счетчик "заданного числа тактов" - ты же его все равно в виде счетчика держишь. Похоже программировать ты действительно не умеешь, если не смог додуматься до такой элементарной вещи.

Почему верхняя граница в 20 МГц, а не в 50? Или не в 100? Я просто не могу себе представить, для чего может понадобиться частотомер с таким диапазоном, да еще с "4-мя занчащими цифрами". Разве что ребенку в качестве игрушки.

8-)

Серъезный прибор должен уметь мерять не только частоту/период, но и скважность, отношение двух частот, "дрожание" частоты, ее амплитуду и иметь диапазон измерения от герц до гигагерца. Для этих целей практически одинаково подходят и PIC и AVR и оба будут обвязаны не одним десятком деталей.

А амплитуда частоты тебя не интересует совсем? Скважность тоже? И чем, интересно, ты ее меряешь, если, как я понял, под рукой у тебя нет осциллографа, а только этот детский частотомер с "4-мя значащими цифрами" на пике, а обычные мультиметры не меряют "переменку" такой частоты?

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

8-) Это с "4-мя значащими цифрами"? Ну насмешил! 8-)

Потому что он тебе не нужен. 8-) Его родило твое больное воображение в процессе спора, как аргумент "за PIC". Ну или ты никогда не занимался "выездным" ремонтом/настройкой - выбирай по вкусу. 8-)

Я не вижу особых преимуществ ни в архитектуре PIC, ни в архитектуре AVR. Спор породили и поддерживают люди, которые знают одну из архитектур лучше и имеют опыт ее использования. Сразу скажу - я пишу под AVR. Выбрал именно его, потому что в большинстве задач мне нужна была его _вычислительная_ скорость, а она выше, чем у PIC при одинаковой частоте тактирования всего контроллера. PIC-и изучал неглубоко, но AVR понравились больше как архитектурой, так и периферией. Ты, Георгий, возможно знаешь PIC лучше меня, но AVR - явно хуже. Ну а если не знаешь, то зачем споришь?

Добрый день.

А реальные задачи могут быть решены на разных контроллерах и куча из них, возможно, будет решена на PIC, но другая куча - на AVR. Причем есть ситуации, когда конкретное решение на PIC не может быть заменено на аналогичное на AVR и _наоборот_! Так о чем спор? Что ты хорошо знаешь PIC? С этим никто не спорит. Что ты плохо знаешь AVR? Это тоже, поверь мне, ты уже всем доказал. [skip]

У меня они через одну - приходится передавать закрытую информацию по открытым каналам, причем с сеансовым ключем.

Мне наплевать, что там прижилось, а что нет - функции шифрации/дешифрации работают с битовым индексированным массивом и в моем случае прекрасно обрабатываются AVR-ом.

Проблемы у тебя могли быть только с головой - думать ей ты явно не умеешь.

Эти задачи лично я делал еще в "детском саде" - когда только-только начинал работать с AVR. Попробуй ты "построить" самосинхронизирующийся протокол типа манчестера-II с произвольным +-50% плавным отклонением "хода часов" передатчика в процессе передачи и "теневой" передачей состояния хэша сеасового пароля вместе с данными, которые шифруются/расшифровываются предидущим сеасовым паролем. Это реальная задача и она решена мной на AVR.

Hello Harry.

15 Jul 04 08:57, you wrote to me:

HZ> ôÅÍ ÎÅ ÍÅÎÅÅ éáòÏ×ÓËÉÊ ÐÏÄÈÏÄ × ÃÅÌÏÍ ÚÁÍÅÔÎÏ ÜÆÆÅËÔÉ×ÎÅÅ. óÔÅË HZ> ÎÕÖÅÎ ÎÅ ÔÏÌØËÏ ËÏÇÄÁ scratch (ÎÅÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ËÏÎÞÉÌÉÓØ, ÎÏ HZ> É:

HZ> [1] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÏÂßÅËÔÙ ÁÇÒÅÇÁÔÎÙÈ (ÍÁÓÓÉ×Ù, ÓÔÒÕËÔÕÒÙ) É HZ> ËÌÁÓÓ ÔÉÐÏ× - ÏÎÉ × ÓÔÅËÅ ÒÁÚÍÅÝÁÀÔÓÑ.

éÚÂÅÇÁÀ ÔÁËÏÇÏ.

HZ> [2] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ, ÏÂßÑ×ÌÅÎÎÙÅ ËÁË volatile.

á ÜÔÏ ÚÁÞÅÍ? þÔÏ ÜÔÏ ÏÚÎÁÞÁÅÔ?

HZ> [3] ëÏÇÄÁ ÎÕÖÎÏ local (ÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ÉÓÐÏÌØÚÏ×ÁÔØ, ÉÈ HZ> ÚÎÁÞÅÎÉÅ ÓÏÈÒÁÎÑÅÔÓÑ × ÓÔÅËÅ. HZ> [4] ðÒÉ ×ÈÏÄÅ × ÐÒÅÒÙ×ÁÎÉÅ ×ÓÅ ÉÓÐÏÌØÚÕÅÍÙÅ ÒÅÇÉÓÔÒÙ ÔÁËÖÅ HZ> ÓÏÈÒÁÎÑÀÔÓÑ × ÓÔÅËÅ.

HZ> [5] ðÒÉ ÐÅÒÅÄÁÞÅ × ÆÕÎËÃÉÀ ÌÏËÁÌØÎÙÈ ÍÁÓÓÉ×Ï×.

ôÏÖÅ ÉÚÂÅÇÁÀ, ÎÏ ÉÎÏÇÄÁ ÂÙ×ÁÅÔ.

HZ> ÷Ï ×ÓÅÈ ÜÔÉÈ ÓÌÕÞÁÑÈ Õ éáòÁ ×ÓÅ ÒÁÂÏÔÁÅÔ ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ, HZ> Á GCC ÐÒÉÈÏÄÉÔÓÑ ÕËÁÚÁÔÅÌØ ÓÔÅËÏ×ÏÇÏ ËÁÄÒÁ ËÁÖÄÙÊ ÒÁÚ ÇÏÒÏÄÉÔØ.

HZ> HÅ ×ÅÒÉÛØ ÍÎÅ, ×ÏÚØÍÉ É ÓÁÍ ÓÒÁ×ÎÉ.

ñ ÐÏÎÑÌ. õ ÍÅÎÑ × ÏÓÎÏ×ÎÏÍ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÊ ÓÔÉÌØ ÐÒÏÇÒÁÍÍ. ñ ÎÁ ÂÏÌØÛÉÅ ÌÑÐÙ gcc ÎÅ ÎÁÓÔÕÐÁÀ.

Alexey

Hello Alexander.

15 Jul 04 13:21, you wrote to me:

AB>> äÌÑ ÔÁËÏÊ ËÏÍÁÎÄÙ ÐÒÉÄÅÔÓÑ ÓÏÚÄÁ×ÁÔØ ÎÏ×ÙÊ ÆÏÒÍÁÔ, ÐÒÉÞÅÍ × 16 AB>> ÂÉÔ ÏÎÁ ÎÉËÁË ÎÅ ×ÌÁÚÉÔ. ëÁËÏÊ ÓÍÙÓÌ? ÷ RISC ÓÔÒÁÀÔÓÑ ÏÔÏÂÒÁÔØ AB>> ÎÁÉÂÏÌÅÅ ÞÁÓÔÏ ÉÓÐÏÌØÚÕÅÍÙÅ ËÏÍÁÎÄÙ.

AD> ïÎÏ, ËÏÎÅÞÎÏ ÔÁË, ÎÏ ×ÅÄØ ÞÁÓÔÏ ÐÒÉÈÏÄÉÔÓÑ ÄÅÌÁÔØ ÏÔÌÁ×ÌÉ×ÁÔØ AD> (ÖÄÁÔØ) ÏÐÒÅÄẠ̊ÎÎÏÇÏ ÓÏÞÅÔÁÎÉÑ ÓÉÇÎÁÌÏ× ÎÁ ÎÏÖËÁÈ, Á ÍÏÖÅÔ ÂÙÔØ É AD> ÐÒÏ×ÅÒÑÔØ ÎÅËÏÔÏÒÙÊ ÂÁÊÔ ÐÒÉÑÔÏÇÏ ÐÁËÅÔÁ ÎÁ ÎÁÌÉÞÉÅ ÏÐÒÅÄẠ̊ÎÎÏÊ AD> ÓÉÇÎÁÔÕÒÙ. HÁÐÒÉÍÅÒ, while ((PIND & (SEL_IN | BUSY_IN)) != (SEL_IN | AD> BUSY_IN)) ; - ÖÄÁÔØ ÓÏÓÔÑÎÉÑ "ÛÉÎÁ Ó×ÏÂÏÄÎÁ", Ô.Å. ÐÏËÁ ÏÂÁ ÂÉÔÁ ÎÅ AD> ÏËÁÖÕÔÓÑ × ÐÁÓÓÉ×ÎÏÍ (ÌÏÇ.1) ÓÏÓÔÏÑÎÉÉ. ôÕÔ ÍÁÓËÉ ÓÏ×ÐÁÄÁÀÔ, ÍÏÖÎÏ AD> ÓÜËÏÎÏÍÉÔØ ÉÓÐÏÌØÚÕÑ ÏÄÉÎ ÒÅÇÉÓÔÒ ÄÌÑ ÏÂÏÉÈ: AD> LDI R17, SEL_IN_MASK | BUSY_IN_MASK AD> wait_1: AD> IN R16, PIND AD> AND R16, R17 AD> EOR R16, R17 AD> BRNE wait_1

ðÏ ÍÏÅÍÕ, ÏÞÅÎØ ÒÅÄËÁÑ ËÏÍÁÎÄÁ. ðÕÓÔØ ÄÁÖÅ × ÏÄÎÏÊ ÉÚ ÚÁÄÁÞ, ÏÎÁ ÞÁÝÅ ×ÓÅÇÏ ×ÙÐÏÌÎÑÅÔÓÑ.

AD> HÏ×ÙÊ ÆÏÒÍÁÔ - ÄÁ, ÎÕ É ÞÔÏ?

òÁÄÉ ÏÄÎÏÊ ËÏÍÁÎÄÙ?

AD> ðÏÞÅÍÕ ÂÙ ÎÅ ÉÍÅÔØ Ä×ÕÈÓÌÏ×ÎÙÊ ÆÏÒÍÁÔ AD> (ËÁË Õ jmp) ÄÌÑ ÔÁËÉÈ "Ä×ÕÈËÏÎÓÔÁÎÔÎÙÈ" ËÏÍÁÎÄ?

üÔÏ ÕÖÅ ÄÒÕÇÏÊ ÆÏÒÍÁÔ.

AD> ëÓÔÁÔÉ, AD> ÐÒÉÐÏÍÉÎÁÅÔÓÑ, AD> ÞÔÏ × ÍÙÛÉÎÙÈ ËÕÒÓÏÒÁÈ ÂÙÌ ÐÒÉÎÑÔ (ËÁË ÓÅÊÞÁÓ ÎÅ ÚÎÁÀ) ÆÏÒÍÁÔ ÏÐÉÓÁÎÉÑ AD> × ×ÉÄÅ Ä×ÕÈ ÍÁÓÏË - ADN É XOR. þÅÔÙÒÅ ÓÏÞÅÔÁÎÉÑ ÚÎÁÞÅÎÉÊ AD> ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÂÉÔÁ × Ä×ÕÈ ÍÁÓËÁÈ ÐÏÚ×ÏÌÑÌÉ ÏÐÒÅÄÅÌÉÔØ AD> ÒÅÚÕÌØÔÉÒÕÀÝÉÊ ÐÉËÓÅÌ ËÕÒÓÏÒÁ ËÁË "ÐÒÏÚÒÁÞÎÙÊ", "ÔÅÍÎÙÊ", "Ó×ÅÔÌÙÊ" É AD> "ÉÎ×ÅÒÔÉÒÕÀÝÉÊ". ôÏÖÅ ×ÅÄØ ÉÎÏÇÄÁ ÎÕÖÎÏ - ÜÔÏÔ ÂÉÔ ×Ú×ÅÓÔÉ, Á ÜÔÉ Ä×Á AD> ÎÁÏÂÏÒÏÔ, ÓÂÒÏÓÉÔØ...

HÕ ÔÙ É ÓÒÁ×ÎÉÌ.

Alexey

ðÒÉ×ÅÔ Oleksandr!

15 Jul 04 00:13, Oleksandr Redchuk ÐÉÓÁÌ "Alexander Derazhne":

OR> p.s. ËÓÔÁÔÉ, ÎÁÓËÏÌØËÏ Ñ ÐÏÍÎÀ, arm gcc × ÐÒÅÄÅÌÁÈ ÆÕÎËÃÉÉ ÎÅÓËÏÌØËÏ OR> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÙÈ ÏÂÒÁÝÅÎÉÊ Ë ÒÅÇÉÓÔÒÁÍ ÐÅÒÉÆÅÒÉÉ ×ÐÏÌÎÅ ÓÏÂÉÒÁÅÔ × OR> ËÕÞËÉ, ÄÏÓÔÕÐÎÙÅ × ÐÒÅÄÅÌÁÈ ÏÄÎÏÇÏ ÏËÎÁ, ÏÄÉÎ ÒÁÚ ÚÁÇÒÕÖÁÅÔ ËÁËÏÊ-ÔÏ OR> ÒÅÇÉÓÔÒ ÁÄÒÅÓÏÍ ÎÁÞÁÌÁ ÜÔÏÇÏ ÏËÎÁ É ÓÐÏËÏÊÎÏ ÁÄÒÅÓÕÅÔÓÑ ÓÍÅÝÅÎÉÑÍÉ.

âÏÌÅÅ ÔÏÇÏ, ÏÂÒÁÝÅÎÉÑ Ë ÎÅÓËÏÌØËÉÍ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏ ÒÁÓÐÏÌÏÖÅÎÎÙÍ ÁÄÒÅÓÁÍ ÏÎ ÄÅÌÁÅÔ ËÏÍÁÎÄÁÍÉ ÂÌÏÞÎÏÊ ÚÁÇÒÕÚËÉ. ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... HÅ ÍÅÓÔÏ ÐÏÒÔÉÔ ÞÅÌÏ×ÅËÁ, Á ÞÅÌÏ×ÅË ÍÅÓÔÏ.

Hello, Alexey! You wrote to Alexander Derazhne on Wed, 14 Jul 2004 13:25:32 +0400:

AD>> HÕ, ÔÏÇÄÁ ×ÏÔ Åݣ, ÎÏ ÕÖÅ ÎÁ ÐÒÁ×ÁÈ "ÐÏÖÅÌÁÎÉÑ". ëÏÍÁÎÄÁ AD>> "ÓÒÁ×ÎÉÔØ Ó ÍÁÓËÏÊ É ÐÒÏÐÕÓÔÉÔØ, ÅÓÌÉ ÞÔÏ" :-). ÷ ËÏÍÁÎÄÅ ÄÏÌÖÎÏ AD>> ÂÙÔØ ÔÒÉ ÏÐÅÒÁÎÄÁ - ÒÅÇÉÓÔÒ ×/×, ÍÁÓËÁ ×ÙÄÅÌÑÅÍÙÈ ÂÉÔ, ÍÁÓËÁ AD>> ÓÒÁ×ÎÅÎÉÑ. AD>> HÁÚÎÁÞÅÎÉÅ - ÏÔÌÏ× ÎÕÖÎÏÊ ËÏÍÂÉÎÁÃÉÉ (ÍÁÓËÁ ÓÒÁ×ÎÅÎÉÑ) ÎÕÖÎÙÈ AD>> ÂÉÔ(ÍÁÓËÁ ×ÙÄÅÌÅÎÉÑ).

AB> äÌÑ ÔÁËÏÊ ËÏÍÁÎÄÙ ÐÒÉÄÅÔÓÑ ÓÏÚÄÁ×ÁÔØ ÎÏ×ÙÊ ÆÏÒÍÁÔ, ÐÒÉÞÅÍ × 16 ÂÉÔ AB> ÏÎÁ ÎÉËÁË ÎÅ ×ÌÁÚÉÔ. ëÁËÏÊ ÓÍÙÓÌ? ÷ RISC ÓÔÒÁÀÔÓÑ ÏÔÏÂÒÁÔØ ÎÁÉÂÏÌÅÅ AB> ÞÁÓÔÏ ÉÓÐÏÌØÚÕÅÍÙÅ ËÏÍÁÎÄÙ.

ïÎÏ, ËÏÎÅÞÎÏ ÔÁË, ÎÏ ×ÅÄØ ÞÁÓÔÏ ÐÒÉÈÏÄÉÔÓÑ ÄÅÌÁÔØ ÏÔÌÁ×ÌÉ×ÁÔØ (ÖÄÁÔØ) ÏÐÒÅÄẠ̊ÎÎÏÇÏ ÓÏÞÅÔÁÎÉÑ ÓÉÇÎÁÌÏ× ÎÁ ÎÏÖËÁÈ, Á ÍÏÖÅÔ ÂÙÔØ É ÐÒÏ×ÅÒÑÔØ ÎÅËÏÔÏÒÙÊ ÂÁÊÔ ÐÒÉÑÔÏÇÏ ÐÁËÅÔÁ ÎÁ ÎÁÌÉÞÉÅ ÏÐÒÅÄẠ̊ÎÎÏÊ ÓÉÇÎÁÔÕÒÙ. îÁÐÒÉÍÅÒ, while ((PIND & (SEL_IN | BUSY_IN)) != (SEL_IN | BUSY_IN)) ; - ÖÄÁÔØ ÓÏÓÔÑÎÉÑ "ÛÉÎÁ Ó×ÏÂÏÄÎÁ", Ô.Å. ÐÏËÁ ÏÂÁ ÂÉÔÁ ÎÅ ÏËÁÖÕÔÓÑ × ÐÁÓÓÉ×ÎÏÍ (ÌÏÇ.1) ÓÏÓÔÏÑÎÉÉ. ôÕÔ ÍÁÓËÉ ÓÏ×ÐÁÄÁÀÔ, ÍÏÖÎÏ ÓÜËÏÎÏÍÉÔØ ÉÓÐÏÌØÚÕÑ ÏÄÉÎ ÒÅÇÉÓÔÒ ÄÌÑ ÏÂÏÉÈ: LDI R17, SEL_IN_MASK | BUSY_IN_MASK wait_1: IN R16, PIND AND R16, R17 EOR R16, R17 BRNE wait_1 ÎÏ, ÓÏÇÌÁÓÉÓØ, ÜÔÏ ÎÅ ÜÌÅÇÁÎÔÎÏ, ÔÁ É ÐÏ ×ÒÅÍÅÎÉ ÄÏÌÇÏ (× ÍϣÍ ÓÌÕÞÁÅ - ÎÁ ÇÒÁÎÉ ÄÏÐÕÓÔÉÍÏÇÏ). ëÏÎÅÞÎÏ, ÓÁÍÙÍ ÐÒÁ×ÉÌØÎÙÍ ÂÙÌÏ ÂÙ ÐÏÓÔÁ×ÉÔØ ÌÁÛËÕ, ÓÏÂÉÒÁÀÝÕÀ ÜÔÉ ÓÁÍÙÅ ÓÉÇÎÁÌÙ, ÎÏ ÜÔÏ ÕÖÅ ÎÅ ÓÐÏÒÔÉ×ÎÏ - scsi ÁÄÁÐÔÅÒ ÎÁ ÏÄÎÏÍ ÞÉÐÅ Ó ÇÏÒÓÔËÏÊ 2n7002 É ÔÕÔ ×ÄÒÕÇ ËÁËÁÑ-ÔÏ 155ÌÁ3 :-)), ÉÓÐÏÌØÚÕÅÍÁÑ ÎÁ 1/4... îÏ×ÙÊ ÆÏÒÍÁÔ - ÄÁ, ÎÕ É ÞÔÏ? ðÏÞÅÍÕ ÂÙ ÎÅ ÉÍÅÔØ Ä×ÕÈÓÌÏ×ÎÙÊ ÆÏÒÍÁÔ (ËÁË Õ jmp) ÄÌÑ ÔÁËÉÈ "Ä×ÕÈËÏÎÓÔÁÎÔÎÙÈ" ËÏÍÁÎÄ? ëÓÔÁÔÉ, ÐÒÉÐÏÍÉÎÁÅÔÓÑ, ÞÔÏ × ÍÙÛÉÎÙÈ ËÕÒÓÏÒÁÈ ÂÙÌ ÐÒÉÎÑÔ (ËÁË ÓÅÊÞÁÓ ÎÅ ÚÎÁÀ) ÆÏÒÍÁÔ ÏÐÉÓÁÎÉÑ × ×ÉÄÅ Ä×ÕÈ ÍÁÓÏË - ADN É XOR. þÅÔÙÒÅ ÓÏÞÅÔÁÎÉÑ ÚÎÁÞÅÎÉÊ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÂÉÔÁ × Ä×ÕÈ ÍÁÓËÁÈ ÐÏÚ×ÏÌÑÌÉ ÏÐÒÅÄÅÌÉÔØ ÒÅÚÕÌØÔÉÒÕÀÝÉÊ ÐÉËÓÅÌ ËÕÒÓÏÒÁ ËÁË "ÐÒÏÚÒÁÞÎÙÊ", "ÔÅÍÎÙÊ", "Ó×ÅÔÌÙÊ" É "ÉÎ×ÅÒÔÉÒÕÀÝÉÊ". ôÏÖÅ ×ÅÄØ ÉÎÏÇÄÁ ÎÕÖÎÏ - ÜÔÏÔ ÂÉÔ ×Ú×ÅÓÔÉ, Á ÜÔÉ Ä×Á ÎÁÏÂÏÒÏÔ, ÓÂÒÏÓÉÔØ...

AD>> HÏ ÜÔÏ Ñ ÕÖÅ ÎÁÇÌÅÀ :-)).

AB> üÔÏ ÔÏÞÎÏ. ;)

:-))

Alexander,Derazhne@adic,kiev,ua (replace commas with dots) Alexander Derazhne

Привет!

Thu Jul 15 2004 11:15, Andrew V. Miheev wrote to George Shepelev:

...

AVM> Hа AVR, даже на 8-ми битном таймере никаких потерь нет и быть не может. AVM> Любые задержки (на вход в прерывание и выполнение команд) вычисляются AVM> после пуска таймера/счетчика внешних событий путем выполнения некоторого AVM> кол-ва команд с нужным кол-вом тактов и чтения таймера.

Каким образом можно вычислить задержку на вход прерывание, когда прерываться могут 1...4 тактовые команды?

Thu, 15 Jul 2004 12:26:58 +0400 Alexey Boyko wrote to Harry Zhurov:

HZ>> ôÅÍ ÎÅ ÍÅÎÅÅ éáòÏ×ÓËÉÊ ÐÏÄÈÏÄ × ÃÅÌÏÍ ÚÁÍÅÔÎÏ ÜÆÆÅËÔÉ×ÎÅÅ. óÔÅË HZ>> ÎÕÖÅÎ ÎÅ ÔÏÌØËÏ ËÏÇÄÁ scratch (ÎÅÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ËÏÎÞÉÌÉÓØ, ÎÏ HZ>> É:

HZ>> [1] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÏÂßÅËÔÙ ÁÇÒÅÇÁÔÎÙÈ (ÍÁÓÓÉ×Ù, ÓÔÒÕËÔÕÒÙ) É HZ>> ËÌÁÓÓ ÔÉÐÏ× - ÏÎÉ × ÓÔÅËÅ ÒÁÚÍÅÝÁÀÔÓÑ.

AB> éÚÂÅÇÁÀ ÔÁËÏÇÏ.

:) õ ÔÅÂÑ ÅÓÔØ ÐÒÉÞÉÎÁ ÉÚÂÅÇÁÔØ. :) ëÏÇÄÁ ÅÅ ÎÅÔ, ÔÏ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÜÔÉÈ ×ÅÝÅÊ ×ÐÏÌÎÅ ÏÐÒÁ×ÄÁÎÏ.

HZ>> [2] ëÏÇÄÁ ÅÓÔØ ÌÏËÁÌØÎÙÅ ÐÅÒÅÍÅÎÎÙÅ, ÏÂßÑ×ÌÅÎÎÙÅ ËÁË volatile.

AB> á ÜÔÏ ÚÁÞÅÍ? þÔÏ ÜÔÏ ÏÚÎÁÞÁÅÔ?

îÅ ÍÏÇÕ ÐÏ×ÅÒÉÔØ, ÞÔÏ ÔÙ ÎÅ ÚÎÁÅÛØ ÔÁËÉÈ ×ÅÝÅÊ... :)

HZ>> [3] ëÏÇÄÁ ÎÕÖÎÏ local (ÓÏÈÒÁÎÑÅÍÙÅ) ÒÅÇÉÓÔÒÙ ÉÓÐÏÌØÚÏ×ÁÔØ, ÉÈ HZ>> ÚÎÁÞÅÎÉÅ ÓÏÈÒÁÎÑÅÔÓÑ × ÓÔÅËÅ. HZ>> [4] ðÒÉ ×ÈÏÄÅ × ÐÒÅÒÙ×ÁÎÉÅ ×ÓÅ ÉÓÐÏÌØÚÕÅÍÙÅ ÒÅÇÉÓÔÒÙ ÔÁËÖÅ HZ>> ÓÏÈÒÁÎÑÀÔÓÑ × ÓÔÅËÅ.

HZ>> [5] ðÒÉ ÐÅÒÅÄÁÞÅ × ÆÕÎËÃÉÀ ÌÏËÁÌØÎÙÈ ÍÁÓÓÉ×Ï×.

AB> ôÏÖÅ ÉÚÂÅÇÁÀ, ÎÏ ÉÎÏÇÄÁ ÂÙ×ÁÅÔ.

ðÒÉ ÎÁÌÉÞÉÅ ÎÏÒÍÁÌØÎÏÇÏ ÕËÁÚÁÔÅÌÑ ÓÔÅËÁ ÉÚÂÅÇÁÔØ ÎÅ ÐÒÉÈÏÄÉÔÓÑ. äÁÖÅ É ÄÕÍÁÔØ ÎÁÄ ÜÔÉÍ ÎÅ ÏÓÏÂÅÎÎÏ ÐÒÉÈÏÄÉÔÓÑ.

HZ>> ÷Ï ×ÓÅÈ ÜÔÉÈ ÓÌÕÞÁÑÈ Õ éáòÁ ×ÓÅ ÒÁÂÏÔÁÅÔ ÍÁËÓÉÍÁÌØÎÏ ÜÆÆÅËÔÉ×ÎÏ, HZ>> Á GCC ÐÒÉÈÏÄÉÔÓÑ ÕËÁÚÁÔÅÌØ ÓÔÅËÏ×ÏÇÏ ËÁÄÒÁ ËÁÖÄÙÊ ÒÁÚ ÇÏÒÏÄÉÔØ.

HZ>> HÅ ×ÅÒÉÛØ ÍÎÅ, ×ÏÚØÍÉ É ÓÁÍ ÓÒÁ×ÎÉ.

AB> ñ ÐÏÎÑÌ. õ ÍÅÎÑ × ÏÓÎÏ×ÎÏÍ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÊ ÓÔÉÌØ ÐÒÏÇÒÁÍÍ. ñ ÎÁ ÂÏÌØÛÉÅ AB> ÌÑÐÙ gcc ÎÅ ÎÁÓÔÕÐÁÀ.

þÔÏ, ×ÏÏÂÝÅ ÂÅÚ ÉÓÐÏÌØÚÏ×ÁÎÉÑ ÓÔÅËÁ × ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÏÂÈÏÄÉÛØÓÑ? :)

Hello, Alexey! You wrote to Alexander Derazhne on Thu, 15 Jul 2004 12:39:44 +0400:

AB> ðÏ ÍÏÅÍÕ, ÏÞÅÎØ ÒÅÄËÁÑ ËÏÍÁÎÄÁ. ðÕÓÔØ ÄÁÖÅ × ÏÄÎÏÊ ÉÚ ÚÁÄÁÞ, ÏÎÁ AB> ÞÁÝÅ ×ÓÅÇÏ ×ÙÐÏÌÎÑÅÔÓÑ.

îÅ ÂÕÄÕ ÓÐÏÒÉÔØ, ÓÔÁÔÉÓÔÉËÉ ÎÅÔ. ÷ÐÒÏÞÅÍ, Ñ ×ÅÄØ ÓÒÁÚÕ ÏÐÒÅÄÅÌÉÌ ÜÔÏ ËÁË "ÎÁÇÌÏÓÔØ" :-)).

AD>> HÏ×ÙÊ ÆÏÒÍÁÔ - ÄÁ, ÎÕ É ÞÔÏ?

AB> òÁÄÉ ÏÄÎÏÊ ËÏÍÁÎÄÙ?

AD>> ðÏÞÅÍÕ ÂÙ ÎÅ ÉÍÅÔØ Ä×ÕÈÓÌÏ×ÎÙÊ ÆÏÒÍÁÔ (ËÁË Õ jmp) ÄÌÑ ÔÁËÉÈ AD>> "Ä×ÕÈËÏÎÓÔÁÎÔÎÙÈ" ËÏÍÁÎÄ?

AB> üÔÏ ÕÖÅ ÄÒÕÇÏÊ ÆÏÒÍÁÔ.

ðÏ ÓÕÔÉ ÔÏÔ-ÖÅ ÓÁÍÙÊ. òÅÇÉÓÔÒ, Ä×Á ËÏÎÓÔÁÎÔÎÙÈ ÂÁÊÔÁ. á ÞÔÏ ÔÁÍ ËÏÍÁÎÄÁ ÄÅÌÁÅÔ - ÐÒÏ×ÅÒÑÅÔ ÉÌÉ ×Ú×ÏÄÉÔ - ÜÔÏ ÕÖÅ ţ ÌÉÞÎÏÅ ÄÅÌÏ.

AD>> ëÓÔÁÔÉ, ÐÒÉÐÏÍÉÎÁÅÔÓÑ, ÞÔÏ × ÍÙÛÉÎÙÈ ËÕÒÓÏÒÁÈ ÂÙÌ ÐÒÉÎÑÔ (ËÁË AD>> ÓÅÊÞÁÓ ÎÅ ÚÎÁÀ) ÆÏÒÍÁÔ ÏÐÉÓÁÎÉÑ × ×ÉÄÅ Ä×ÕÈ ÍÁÓÏË - ADN É XOR. AD>> þÅÔÙÒÅ ÓÏÞÅÔÁÎÉÑ ÚÎÁÞÅÎÉÊ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ ÂÉÔÁ × Ä×ÕÈ ÍÁÓËÁÈ AD>> ÐÏÚ×ÏÌÑÌÉ ÏÐÒÅÄÅÌÉÔØ ÒÅÚÕÌØÔÉÒÕÀÝÉÊ ÐÉËÓÅÌ ËÕÒÓÏÒÁ ËÁË AD>> "ÐÒÏÚÒÁÞÎÙÊ", "ÔÅÍÎÙÊ", "Ó×ÅÔÌÙÊ" É "ÉÎ×ÅÒÔÉÒÕÀÝÉÊ". ôÏÖÅ ×ÅÄØ AD>> ÉÎÏÇÄÁ ÎÕÖÎÏ - ÜÔÏÔ ÂÉÔ ×Ú×ÅÓÔÉ, Á ÜÔÉ Ä×Á ÎÁÏÂÏÒÏÔ, ÓÂÒÏÓÉÔØ...

AB> HÕ ÔÙ É ÓÒÁ×ÎÉÌ.

? úÁÄÁÞÁ ÐÏ ÓÕÔÉ ÔÁ-ÖÅ ÓÁÍÁÑ - ÅÓÔØ ÉÓÈÏÄÎÙÊ ÂÁÊÔ É Ä×Å ÍÁÓËÉ. á ÔÅÐÅÒØ ÍÙ Ó ÎÉÍÉ ÞÅÇÏ-ÔÏ-ÔÁÍ ÄÅÌÁÅÍ.

Alexander,Derazhne@adic,kiev,ua (replace commas with dots) Alexander Derazhne

14-Jul-04 14:43 George Shepelev wrote to Oleksandr Redchuk:

OR>> Определись сначала, что ты хочешь. _____^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

GS> Повторяю, нужен частотомер. Hафиг мне нужны "такты", которые я всё Изначально было сказано "прочесть значение таймера, не потеряв перенос из младшего байта в старший". Задача решается, причём для таймера решается "честно" с точки зрения таймера как устройства для отсечения временных интервалов. Если бы стояла задача "отработать *один* раз временной интервал, а дальше всё начнётся заново" то я бы просто загрузил в таймер такое число, что в конце нужного мне интервала взвёлся бы его флаг переноса и проверял бы только этот флаг, что проще.

Но поскольку задача из "прочитать таймер без потери переноса" превратилась вообще в "дать счётчику посчитать внешние импульсы в течении заданного времени" то да, тогда надо его *остановить*. Ну если его надо остановить, то он будет остановлен. Что на пике, что на AVR-е, что на MCS51. У любого из них есть возможность остановить счётчик. Причём даже если счётчик 8-разрядный и расширен дальше программно в прерываниях, то всё равно этот счётчик можно остановить и перенос потерян не будет.

OR>> 2) Если таймер остановить, то и при чтении его+софтового расширения OR>> тоже никаких потерь переносов из младшего в старший не будет

GS> Зато появится ошибка отработки длительности временного интервала. Откуда? Только не делай умный вид "сам разберёшься, если не дурак". Объясни, дурак я, дурак. Не понимаю, почему если остановить аппаратный 16-битный таймер, то ошибка не возникнет, а если остановить аппаратный 8-битный таймер с расширением в прерываниях, то ошибка возникнет.

OR>> Hу покажи мне, неучу, да всем остальным страждущим сокровенных OR>> знаний, пример чтения 16-битного таймера и 8-битного с софтовым OR>> расширением.

GS> Для начала пойми, почему для измерения частоты вовсе не нужен постоянно GS> работающий таймер, глупые вопросы отпадут сами собой... Это ты для начала научись чётко ставить задачу.

Для *измерения_частоты* счётчик и я буду останавливать.

Для отработки *одиночного_временного_интервала* таймер я буду предзагружать нужным числом.

Для *считывания_показаний_таймера* я буду пользоваться двойным чтением, чтобы оставить таймер целым для будущих считываний показаний.

OR>>>> GetTimer: GS>>> Это что, попытка считать "полное" значение таймера в момент GS>>> завершения временного интервала? Очень хорошо, смотрим: OR>> Это чтение текущего состояния таймера без нарушения его хода.

GS> "Сами создаём себе трудности, чтобы затем их мужественно преодолевать" GS> (c) Нет. Отвечаем на поставленный вопрос "считать показания таймера без потери переноса из младшего байта в старший". А если у ставившего вопрос букашки в глове и он на самом деле хотел спросить "дать счётчику посчитать заданное время" - то это его детские трудности.

GS>>> PIC позволяет включить и выключить таймер одной командой, что GS>>> обеспечивает _точное_ формирование временного интервала даже при GS>>> низкой тактовой частоте ядра. AVR тоже даёт возможность включать и выключать таймер одной командой. В равных условиях, т.е. в аккуратно написанной ассемблерной программе. В C-шной - двумя.

GS> Частота есть количество входных импульсов, делённое на интервал времени, GS> за которое _велось_ наблюдение за сигналом. При неточной отработке этого GS> интервала - точность измерений снижается. Что происходило в то время, GS> когда наблюдения не велись, всё равно не показывается. Я понятно излагаю? Теперь да. С третьего раза у тебя вышло полностью изменить постановку вопроса и изложить её уже без разночтений.

OR>> Потому что именно в нём у пиков преимущество?

GS> Потому что это _реальная_ задача. Достаточно типичная. Во-во. "а все остальные назовём нетипичными".

GS> То, что описанный прибор окажется _значительно_ точнее твоего GS> "супермультиметра" - тоже серьёзный аргумент. Особенно после GS> сравнения габаритов и цены ;) Какого "моего супермультиметра"? Цена увеличится на цену epm3064. Габариты практически не увеличатся (определяются больше иникатором и входной частью с предделителем с ГГц). В EPM3064 я размещу два 20-битных аппаратных счётчика с аппаратными же цепями разрешения счёта одного выходным сигналом другого и прочие необходимые вещи типа доступа к этому всему по SPI. А если считать, что "основной" счётчик может находиться в однокристалке, в альтеринке для неё только 4-битный предделитель (тогда диапазон до 80MHz уже и AVR потянет) и 20-битный "опорный" счётчик, то это всё должно вообще в EPM3032 влезть. Увеличится только потребление. Если давит, я в ту же плату впаяю немного более дорогой CoolRunner, у них с EPM3K цоколёвка совпадает. А по точности и по возможностям решения на голом пике точно отдыхают (а не на голом, повторяю, у пика нет преимуществ).

При удорожании комплектовки на уровне $3.

Я за интернет за выкачку писем по этому треду наверное уже больше заплатил.

OR>> Моё "меня интересует диапазон выше ZZZ + возможность мерять отношение OR>> частот" -- это неубедительно.

GS> Твой "супермультиметр" это умеет? Hет? Тогда почему это должен уметь GS> прибор, который нужен мне? Какой такой "мой супермультеметр"? Ты точно выспался? Или ты меня с Бойко путаешь? Внимательность, достойная суперпрограммиста, оттренированного на ручном размещении переменных по банкам. Вполне коррелирует с твоей неспособностью с первого раза объяснить, чего же хочешь.

Alexey, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ éÀÌØ 14 2004 09:00, Alexey Krasnov wrote to George Shepelev:

AK>>> þÅÇÏ ??? ôÙ ÈÏÔØ ÚÎÁÅÛØ Ï ÞÅÍ ÇÏ×ÏÒÉÛØ ? GS>> úÎÁÞÉÔÅÌØÎÏ ÌÕÞÛÅ ÔÅÂÑ! GS>> éÚÏÂÒÁÚÉ ×ÙÄÁÞÕ Ä×ÕÈ ÐÒÏÔÉ×ÏÆÁÚÎÙÈ ÍÅÁÎÄÒÏ× ÎÁ ÎÏÖËÁÈ ÐÏÒÔÁ. GS>> ÷ÏÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ËÏÄ ÄÌÑ PIC. AK> - íÁÌØÞÉË, ËÁË ÔÅÂÑ ÚÏ×ÕÔ? AK> - ... AK> - ôÙ ÞÔÏ, ÔÏÒÍÏÚ? AK> - íÅÎÑ ÚÏ×ÕÔ üÄÉË. AK> - á ÆÁÍÉÌÉÑ? AK> - HÅÔ, ÎÅ ÔÏÒÍÏÚ.

ðÏÎÉÍÁÅÛØ, Ñ-Ö ÎÅ ×ÉÎÏ×ÁÔ, ÞÔÏ ÔÙ ÔÏÒÍÏÚ...

GS>> MOVLW 01b GS>> MOVWF PORTx ; ÉÎÉÃÉÁÌÉÚÁÃÉÑ ÐÏÒÔÁ "ÐÒÏÔÉ×ÏÆÁÚÎÙÍÉ" ÂÉÔÁÍÉ

GS>> MOVLW 11b ; ÍÏÄÉÆÉÃÉÒÕÅÍÙÅ ÂÉÔÙ GS>> loop1: GS>> XORWF PORTx,1 ; ÍÏÄÉÆÉËÁÃÉÑ Ó ÐÒÑÍÙÍ ÄÏÓÔÕÐÏÍ Ë ÐÏÒÔÕ GS>> ; 1 ÃÉËÌ GS>> GOTO loop1 ; 2 ÃÉËÌÁ

AK> á ÔÅÐÅÒØ ÄÁ×ÁÊ ÐÏ ÓÕÝÅÓÔ×Õ.

äÁÖÅ ÎÅ ÐÏÐÙÔÁÅÛØÓÑ ÓÄÅÌÁÔØ ÜÔÏ-ÖÅ ÎÁ AVR? ôÁËÏÊ ×ÅÄØ ÈÏÒÏÛÉÊ ÐÒÏÃÅÓÓÏÒ, Á ÎÅ ÍÏÖÅÔ ÓÄÅÌÁÔØ ÐÒÏÓÔÅÎØËÕÀ ÚÁÄÁÞËÕ...

AK> ôÁË ÂïÌØÛÁÑ ÞÁÓÔØ ÞÅÇÏ × AVR ÎÅÄÏÓÔÕÐÎÁ ?

áÂÓÏÌÀÔÎÏ ×ÓÅ ÐÏÒÔÙ ÎÁÐÒÑÍÕÀ ÎÅÄÏÓÔÕÐÎÙ. ïÂÌÁÓÔØ SRAM ÎÁÐÒÑÍÕÀ ÎÅÄÏÓÔÕÐÎÁ. òÁÂÏÔÁÔØ Ó ÎÉÍÉ ÐÒÉÈÏÄÉÔÓÑ ÞÅÒÅÚ "ÉÇÏÌØÎÏÅ ÕÛËÏ" òïH. üÔÏ ÄÁ×ÎÙÍ-ÄÁ×ÎÏ ÐÏÎÑÌÉ ×ÓÅ, ËÒÏÍÅ ÚÁËÏÎÞÅÎÎÙÈ ÔÏÒÍÏÚÏ×.

AK> þÔÏ ËÁÓÁÅÔÓÑ ÍÅÁÎÄÒÏ× - ÍÎÅ ÏÎÉ ÁÂÓÏÌÀÔÎÏ ÂÅÚ ÎÁÄÏÂÎÏÓÔÉ.

ìÀÂÉÍÙÊ ÓÀÖÅÔ AVR-ÍÁÎÏ× - "ÌÉÓÁ É ×ÉÎÏÇÒÁÄ" ;-)

çÅÏÒÇÉÊ

Rifkat, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ éÀÌØ 14 2004 09:30, Rifkat Abdulin wrote to George Shepelev:

RA>>> õ ÍÅÎÑ ÎÁ 2È ÎÏÖËÁÈ É 2È ÔÁÊÍÅÒÁÈ ÐÏÌÕÞÉÌÏÓØ. GS>> õÖÁÓ ËÁËÏÊ! 1 ÔÁÊÍÅÒ, 1 ÎÏÖËÁ. ðÒÅËÒÁÓÎÏ ÆÏÒÍÉÒÕÅÔÓÑ ÎÁ 16F874. GS>> ðÒÉ ÖÅÌÁÎÉÉ ÓÜËÏÎÏÍÉÔØ ÂÅңÔÓÑ ÄÅۣ×ÙÊ 16F818. RA> õÇÕ. ðÏËÁÖÉ, ËÁË ÓÄÅÌÁÌ? ïÓÏÂÅÎÎÏ ÍÏÍÅÎÔ ÓÕÍÍÉÒÏ×ÁÎÉÑ 2È ÞÁÓÔÏÔ ;-)

á ÄÏ ÜÔÏÇÏ ÍÅÓÔÁ ×ӣ ÐÏÎÑÔÎÏ? ïÞÅÎØ ÈÏÒÏÛÏ, ×ÏÔ ÔÅÂÅ Ó ÍÏÍÅÎÔÁ ÓÕÍÍÉÒÏ×ÁÎÉÑ, É ÄÏ ×ÙÄÁÞÉ × ÒÅÇÉÓÔÒÙ PWM. ôÏÌØËÏ ÐÒÏÇÒÁÍÍËÁ ÎÁ ÍÁËÒÏÓÁÈ, ×ÐÒÏÞÅÍ, ÏÎÉ ÄÏÓÔÁÔÏÞÎÏ "ÐÒÏÚÒÁÞÎÙÅ" É ÕÖÅ ÏÚ×ÕÞÉ×ÁÌÉÓØ × ÜÈÅ ;)

ADD TMP_PWM ; ÓÕÍÍÁÒÎÏÅ ÚÎÁÞÅÎÉÅ ÓÉÇÎÁÌÏ× 0 É 1

; 8-ÂÉÔÎÏÅ ÚÎÁÞÅÎÉÅ PWM × ÒÅÇÉÓÔÒÙ CCPR1L(5..0), CCP1CON(5..4) SWAPW TMP_PWM ; (1..0) -> (5..4) ANDL 30h ; ÍÁÓËÉÒÏ×ÁÎÉÅ ÚÎÁÞÁÝÉÈ ÂÉÔ ORL 0Fh ; CCP1M3..0 = 1111 - PWM mode MOV CCP1CON ; *PWM*

RR TMP_PWM ; ->

RRW TMP_PWM ; -> (7..2) -> (5..0) ANDL 3Fh ; ÍÁÓËÉÒÏ×ÁÎÉÅ ÚÎÁÞÁÝÉÈ ÂÉÔ MOV CCPR1L ; *PWM*

RA>>> ñ ÞÔÏ-ÔÏ ÐÏÄÏÂÎÏÅ Ô×ÏÅÊ ÚÁÄÁÞÅ ×ÎÁÞÁÌÅ ÓÄÅÌÁÌ ÎÁ 877Í. ðÏÔÏÍ RA>>> ÐÅÒÅÛÅÌ RA>>> ÎÁ 18Å - É ×ÚÄÏÈÎÕÌ Ó ÏÂÌÅÇÞÅÎÉÅÍ. ðÏÐÒÏÂÕÊ - ÐÏÎÒÁ×ÉÔÓÑ ;-) GS>> íÎÅ _×ÐÏÌÎÅ_ È×ÁÔÁÅÔ 16-ÇÏ ÓÅÍÅÊÓÔ×Á. ïÐÙÔ ;) RA> éÄÉ ÄÁÌØÛÅ.

HÅ ÒÁÎØÛÅ, ÞÅÍ Õ ÍÅÎÑ ÐÏÑ×ÑÔÓÑ ÚÁÄÁÞÉ, ÎÅÒÅÛÁÅÍÙÅ ÎÁ 16-Í ÓÅÍÅÊÓÔ×Å. úÁ ÜÔÏ ×ÒÅÍÑ ËÁË ÒÁÚ ÏËÏÎÞÁÔÅÌØÎÏ "×ÙÌÉÖÕÔ" ÇÌÀËÉ, ×ÓÔÒÅÞÁ×ÛÉÅÓÑ × ÐÅÒ×ÙÈ ÆÌÜÛÅ×ÙÈ ËÏÎÔÒÏÌÌÅÒÁÈ 18-ÇÏ ÓÅÍÅÊÓÔ×Á...

RA> ïÐÙÔ 16È ÏÞÅÎØ ÄÁÖÅ × 18È ÐÒÉÇÏÖÄÁÅÔÓÑ.

ïÐÙÔ ÐÒÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ _ÌÀÂÙÈ_ ËÏÎÔÒÏÌÌÅÒÏ× ÐÒÉÇÏÖÄÁÅÔÓÑ ;)

çÅÏÒÇÉÊ

Alexey, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ éÀÌØ 14 2004 14:41, Alexey Boyko wrote to George Shepelev:

GS>> ïÂÓÕÖÄÁÌÁÓØ ÒÅÁÌÉÚÁÃÉÑ ÞÁÓÔÏÔÏÍÅÒÁ ÎÁ AVR, ÎÁ PIC _ÕÖÅ ÉÍÅÅÔÓÑ_ GS>> ÁÐÐÁÒÁÔÎÙÊ 16-ÔÉ ÂÉÔÎÙÊ ÔÁÊÍÅÒ, ÐÒÅËÒÁÓÎÏ ÓÐÒÁ×ÌÑÀÝÉÊÓÑ Ó ÜÔÏÊ GS>> ÚÁÄÁÞÅÊ ×ÏÏÂÝÅ ÂÅÚ ÐÒÅÒÙ×ÁÎÉÊ. AB> ôÏÞÎÏ ÔÁËÖÅ ÂÕÄÅÔ É ÎÁ AVR.

HÕ ÎÅÔÕ ÎÁ tiny 16-ÔÉ ÂÉÔÎÏÇÏ ÔÁÊÍÅÒÁ. HÅ ÚÁÂÙ×ÁÊ ÐÒÏ ÇÁÂÁÒÉÔÙ É ÃÅÎÕ!

GS>> ÷ÐÒÅÄØ ÏÓÔÁ×ÌÑÊ Ó×ÏÉ ÇÌÕÐÙÅ ÄÏÍÙÓÌÙ ÐÒÉ ÓÅÂÅ... AB> ëÏÎÞÁÊ ÎÅÓÔÉ ÂÒÅÄ ÐÒÏ 16-ÂÉÔÎÙÅ ÔÁÊÍÅÒÙ.

ôÅÂÑ ÕÖÅ ÐÒÏÓÉÌÉ ÏÓÔÁ×ÌÑÔØ Ó×ÏÉ ÇÌÕÐÙÅ ÄÏÍÙÓÌÙ ÐÒÉ ÓÅÂÅ. ðÏ×ÔÏÒÑÀ ÐÒÏÓØÂÕ.

çÅÏÒÇÉÊ

Alexey, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ éÀÌØ 14 2004 15:30, Alexey Boyko wrote to George Shepelev:

AB>>> á × ÄÏËÕÍÅÎÔÁÃÉÉ ÐÏ ðéë ÅÓÔØ ÔÁËÏÅ ÓÏËÒÁÝÅÎÉÅ? HÅ ÄÕÍÁÌ, ÞÔÏ Õ AB>>> ÔÅÂÑ ÏÎÏ ×ÙÚÏ×ÅÔ ÚÁÔÒÕÄÎÅÎÉÑ. SFR - Special Function Register, AB>>> ëÏÒÏÞÅ - ÒÅÇÉÓÔÒÙ ÐÅÒÉÆÅÒÉÉ. GS>> þÔÏ Åݣ ÚÁ ÒÅÇÉÓÔÒÙ ÐÅÒÉÆÅÒÉÉ? äÌÑ ÐÒÉÍÅÒÁ ÓÍÏÔÒÀ ÄÏËÕ ÐÏ GS>> ATmega162, ×ÉÖÕ 32 General Purpose Registers, DATA SRAM, I/O GS>> Modules. é Åݣ × ËÏÎÃÅ ÐÏÍÉÎÁÀÔÓÑ ÎÅËÉÅ "ÒÅÇÉÓÔÒÙ", Ó ÁÄÒÅÓÁÍÉ ÏÔ GS>> $20 ÄÏ $FF. AB> ôÙ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÎÅ ÐÏÎÑÌ?

þÔÏ _ÉÍÅÎÎÏ_ ÔÙ ÈÏÔÅÌ ÓËÁÚÁÔØ? äÅÊÓÔ×ÉÔÅÌØÎÏ ÎÅ ÐÏÎÑÌ. ÷ ÍϣÍ ÐÏÎÉÍÁÎÉÉ (ËÁË É × ÄÏËÕÍÅÎÔÁÃÉÉ ÆÉÒÍÙ Atmel) ÒÅÇÉÓÔÒÙ ÐÅÒÉÆÅÒÉÉ ÍÏÇÕÔ ÚÁÎÉÍÁÔØ ÁÄÒÅÓÁ ÏÔ 20h ÄÏ FFh. áÄÒÅÓÏ×ÁÔØÓÑ Ë ÎÉÍ ×ÓÅÍ 6-ÔÉ ÂÉÔÎÙÍ ÁÄÒÅÓÏÍ ÎÅ×ÏÚÍÏÖÎÏ.

GS>> HÁÚ×ÁÔØ _ÜÔÏ_ ÕÄÏÂÎÏÊ ÏÒÇÁÎÉÚÁÃÉÅÊ ÐÁÍÑÔÉ - "ÓÔÏÌØËÏ Ñ ÎÅ ×ÙÐØÀ" GS>> (c) AB> ôÙ ËÁËÏÊ-ÔÏ ÎÅÐÒÁ×ÉÌØÎÙÊ. äÌÑ ×ÓÅÈ ÞÅÍ ÌÉÎÅÊÎÅÅ ÐÁÍÑÔØ - ÔÅÍ ÌÕÞÛÅ.

ëÏÎÅÞÎÏ ÌÕÞÛÅ. ôÏÌØËÏ ËÏÍÕ ÎÕÖÎÁ ÌÉÎÅÊÎÏÓÔØ "ÄÌÑ ÇÁÌÏÞËÉ"? þÕÔÏÞËÕ "ÌÉÎÅÊÎÏÊ" ÐÁÍÑÔÉ ÔÕÔ, ÞÕÔÏÞËÕ ÔÁÍ, ÄÌÑ ÎÅËÏÔÏÒÙÈ "ÒÅÇÉÓÔÒÏ× ÐÅÒÉÆÅÒÉÉ" ÓÄÅÌÁÅÍ ÓÐÅÃÉÁÌØÎÙÅ ÁÄÒÅÓÁ ÞÔÅÎÉÑ/ÚÁÐÉÓÉ, Á ÏÓÔÁÌØÎÙÅ É ÔÁË ÐÅÒÅÂØÀÔÓÑ. üÔÏ ÐÏ-Ô×ÏÅÍÕ ÌÉÎÅÊÎÁÑ ÐÁÍÑÔØ, ÉÌÉ ÌÏÈÍÏÔØÑ ÔÒÉÛËÉÎÁ ËÁÆÔÁÎÁ?

AB>>> ÔÏ ÚÁÞÅÍ ÂÙÌÏ ×ÙÄÅÌÑÔØ ÂÏÌØÛÅ 6 ÂÉÔ ÁÄÒÅÓÁ? GS>> ë ÐÒÉÍÅÒÕ, ÄÌÑ ÓÏ×ÍÅÓÔÉÍÏÓÔÉ ÍÅÖÄÕ ËÒÉÓÔÁÌÌÁÍÉ. ó ÜÔÉÍ Õ AVR GS>> ×ÓÅÇÄÁ ÂÙÌÉ ÐÒÏÂÌÅÍÙ... AB> HÉËÕÄÁ ÏÎÁ ÎÅ ÄÅÌÁÓØ.

HÕ ÄÁ, ÇÏÒÂÁÔÏÇÏ - ÍÏÇÉÌÁ ÉÓÐÒÁ×ÉÔ ;)

AB> atmega128 ÐÒÉ ÕÓÔÁÎÏ×ËÅ Fuse, ×ÏÏÂÝÅ ÎÅ ÏÔÌÉÞÉÍÁ ÏÔ atmega103

á ÏÔ mega8/16/162 É ÔÁË ÄÁÌÅÅ, É ÔÁË ÄÁÌÅÅ?.. éÌÉ × Ô×ϣÍ ÐÏÎÉÍÁÎÉÉ ×ÓÅ ÌÀÄÉ ÏÄÉÎÁËÏ×Ù, ÅÓÌÉ ÎÁÊģÔÓÑ ÈÏÔØ ÐÁÒÁ ÂÌÉÚÎÅÃÏ×?

AB>>> ðÒÁ×ÄÁ, × mega64/mega128 ÏÎÉ ÔÁËÉ ÓÄÅÌÁÌÉ SFR ÂÏÌØÛÅ ÞÅÍ 64, ÎÏ AB>>> ÏÓÏÂÙÈ ÐÒÏÂÌÅÍ Ó ÜÔÉÍ ÎÅ ÐÒÏÉÚÏÛÌÏ. HÁ óÉ - ×ÏÏÂÝÅ ÎÉËÁËÉÈ. GS>> äÅÊÓÔ×ÉÔÅÌØÎÏ, ËÏÇÏ ×ÏÌÎÕÅÔ ÒÁÚÄÕ×ÁÎÉÅ ËÏÄÁ ÐÒÉ ÏÂÒÁÝÅÎÉÉ, GS>> ÓËÁÖÅÍ, Ë ÔÒÅÔØÅÍÕ ÔÁÊÍÅÒÕ/ÓޣÔÞÉËÕ, AB> á ÞÔÏ ÜÔÏ ÔÁË ÓÉÌØÎÏ ÚÁÍÅÄÌÑÅÔ ËÏÄ?

úÁÍÅÄÌÉÔ, ÏÄÎÁËÏ. é ÒÁÚÄÕÅÔ. é ÓÄÅÌÁÅÔ ÎÅÏÄÎÏÒÏÄÎÙÍ...

AB> ðÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ É ÔÁË È×ÁÔÁÅÔ.

ëÔÏ ÓËÁÚÁÌ?

GS>> ðÅÒÅÞÉÔÁÌ. òÏ×ÎÏ ÔÏ-ÖÅ ×ÐÅÞÁÔÌÅÎÉÅ. óÄÅÌÁÎÏ ËÒÉ×Ï É ÎÅÕÄÏÂÎÏ. GS>> ëÁËÏÅ-ÔÏ ÌÀÂÉÔÅÌØÓÔ×Ï. äÁÖÅ ÄÒÅ×ÎÅÅ 51-Å ÓÅÍÅÊÓÔ×Ï ÓÍÏÔÒÉÔÓÑ ËÕÄÁ GS>> ÜÌÅÇÁÎÔÎÅÅ... AB> HÕ ÜÔÏ ÔÙ ËÒÕÔÏ ÐÏÇÎÁÌ.

HÉÞÕÔØ! ëÏÄ ÐÏÌÕÞÁÅÔÓÑ ÏÄÎÏÒÏÄÎÙÊ É ÎÁÇÌÑÄÎÙÊ, ÅÓÔØ ÎÁÂÏÒ ÂÉÔÏ×ÙÈ ËÏÍÁÎÄ, ÛÉÒÅ ÄÉÁÐÁÚÏÎ ËÏÓ×ÅÎÎÏÊ ÁÄÒÅÓÁÃÉÉ Ó "ÌÉÎÅÊÎÙÍ" ÁÄÒÅÓÏÍ, ÇÉÂËÁÑ ÓÉÓÔÅÍÁ ÐÒÅÒÙ×ÁÎÉÊ. HÅ ÚÒÑ ÜÔÏ ÄÒÅ×ÎÅÅ ÓÅÍÅÊÓÔ×Ï ËÏÎÔÒÏÌÌÅÒÏ× ÖÉ×Ï É ÒÁÚ×É×ÁÅÔÓÑ ÄÏ ÓÉÈ ÐÏÒ.

AB>>> ðÏËÁ ÞÔÏ, ËÒÏÍÅ ×ÏÚÍÏÖÎÏÓÔÉ ÐÒÉÃÅÐÉÔØ Ä×Á Input Capture ÎÁ ÏÄÉÎ AB>>> ÔÁÊÍÅÒ ÎÉÞÅÇÏ ÐÒÅ×ÏÓÈÏÄÎÏÇÏ ÎÅ ÎÁÛÅÌ. GS>> ïÞÅÎØ ÐÌÏÈÏ ÓÍÏÔÒÅÌ. AB> á ÍÎÅ ÂÏÌØÛÅ É ÎÅ ÎÕÖÎÏ.

äÏ×ÏÌØÎÏ ÐÒÅÄ×ÚÑÔÙÊ ÐÏÄÈÏÄ ;)

AB>>> HÏ ÌÕÞÛÅ ÕÖ Ñ msp430 ×ÏÚØÍÕ. GS>> äÁ ÈÏÔØ Athlon-64 ÂÅÒÉ, ÍÎÅ ÔÏ ÞÔÏ... AB> ðÏÎÁÄÏÂÉÔÓÑ - ×ÏÚØÍÕ, Á ÞÔÏ?

òÏ×ÎÙÍ ÓޣÔÏÍ ÎÉÞÅÇÏ, ÞÅÍ ÛÉÒÅ ×ÙÂÏÒ, ÔÅÍ ÂÏÌØÛÅ ×ÏÚÍÏÖÎÏÓÔÅÊ ÎÁÊÔÉ ÏÐÔÉÍÁÌØÎÏÅ ÒÅÛÅÎÉÅ...

çÅÏÒÇÉÊ

Alexey, ÔÙ Åݣ ÚÄÅÓØ ÓÉÄÉÛØ?

óÒÅÄÁ éÀÌØ 14 2004 16:17, Alexey Boyko wrote to George Shepelev:

GS>>>> HÁ 8-ÍÉ ÂÉÔÎÏÍ ËÏÎÔÒÏÌÌÅÒÅ ÜÔÏ ÎÅ ÐÏÌÕÞÁÅÔÓÑ. AB>>> üÔÏ ÎÁ ðéëÅ - ÎÅ ÐÏÌÕÞÁÅÔÓÑ. õ AVR, i8080, Z80 É ÄÁÖÅ i51 - AB>>> ÐÏÌÕÞÁÅÔÓÑ. GS>> õ AVR - ÃÅÎÏÊ ÐÅÒÅÔÁÓËÉ×ÁÎÉÑ ×ÓÅÈ ÄÁÎÎÙÈ ÞÅÒÅÚ ÉÇÏÌØÎÏÅ ÕÛËÏ GS>> òïHÏ×. AB> HÅ ×ÓÅÈ.

÷ÓÅÈ ÐÏÒÔÏ×. é ×ÓÅÈ ÒÅÇÉÓÔÒÏ×, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ 32.

GS>> HÁÌÉÞÉÅ ËÏÍÁÎÄ MOV/LD/ST ÏÔÎÀÄØ ÎÅ ÒÅÛÁÅÔ ÚÁÄÁÞÕ _ÐÏÌÎÏÃÅÎÎÏÇÏ_ GS>> ÄÏÓÔÕÐÁ Ë ÌÉÎÅÊÎÏÍÕ ÁÄÒÅÓÎÏÍÕ ÐÒÏÓÔÒÁÎÓÔ×Õ ÄÁÎÎÙÈ. òÅÞØ ÛÌÁ GS>> ÉÍÅÎÎÏ Ï ÜÔÏÍ. AB> äÌÑ ÔÅÂÑ - ÎÅ ÒÅÛÁÅÔ.

HÅ ÔÏÌØËÏ ÄÌÑ ÍÅÎÑ ;)

AB>>> HÅÔ. HÅ ×ÓÅ ÓÍÏÔÒÅÌ. åÓÔØ ÅÝÅ ËÏÍÁÎÄÙ adiw/sbiw ÍÏÄÉÆÉËÁÃÉÉ AB>>> ÒÅÇÉÓÔÒÏ×ÙÈ ÐÁÒ r24:r25, XH:XL, YH:YL, ZH:ZL. AB>>> ðÒÁ×ÄÁ ÄÉÁÐÁÚÏÎ -64..+64, GS>> -63 ÉÌÉ +63. AB> á ÐÏ ÓÕÝÅÓÔ×Õ?

ðÒÏÓÔÏ ÕÔÏÞÎÉÌ, ÞÔÏÂÙ ÎÉËÔÏ ÓÌÕÞÁÊÎÏ ÎÅ ÎÁÓÔÕÐÉÌ ÎÁ ÇÒÁÂÌÉ, ÐÏ×ÅÒÉ× "ÐÅÓÎÑÍ ÓÉÒÅÎ" ;)

AB>>> ÎÏ É ÜÔÏ ÎÅÍÁÌÏ. GS>> óÏ×ÓÅÍ ÎÅÍÎÏÇÏ, ÎÏ ÌÕÞÛÅ, ËÏÎÅÞÎÏ, ÞÅÍ ÎÉÞÅÇÏ ;) AB> äÌÑ ÒÁÂÏÔÙ Ó ÉÎÄÅËÓÏÍ ÍÁÓÓÉ×Á ÜÔÏ ×ÐÏÌÅ ÄÏÓÔÁÔÏÞÎÏ.

úÁ×ÉÓÉÔ!

GS>> ÷ӣ-ÔÁËÉ ÄÌÑ _ÐÏÌÎÏÃÅÎÎÏÊ_ ÒÅÁÌÉÚÁÃÉÉ ÎÕÖÅÎ 16-ÔÉ ÂÉÔÎÙÊ GS>> ËÏÎÔÒÏÌÌÅÒ. á ÍÏÖÅÔ É 32-È ÂÉÔÎÙÊ ;) AB> äÌÑ ÒÅÁÌÉÚÁÃÉÉ ÞÅÇÏ?

äÌÑ ÒÅÁÌÉÚÁÃÉÉ ÐÏÌÎÏÃÅÎÎÏÊ ÁÄÒÅÓÁÃÉÉ. óÍ. ÔÅ-ÖÅ PDP-11 ÉÌÉ 430 ÓÅÒÉÀ ÏÔ TI.

GS>> ëÏÇÄÁ Ñ ÐÙÔÁÌÓÑ ÒÁÂÏÔÁÔØ Ó AVR'ÁÍÉ, ËÏÍÐÉÌÑÔÏÒÁ Ó ÐÏÌÎÏÃÅÎÎÏÊ GS>> ÐÏÄÄÅÒÖËÏÊ ÔÁËÉÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÎÁÊÔÉ ÎÅ ÕÄÁÌÏÓØ. AB> HÏ ×ÅÄØ ÜÔÏ ÎÅ ÐÒÏÂÌÅÍÁ AVR, ×ÅÄØ ÔÁË?

üÔÏ ÂÙÌÏ ÐÒÏÂÌÅÍÏÊ ÔÅÈ, ËÔÏ ÐÙÔÁÌÓÑ ÒÁÂÏÔÁÔØ Ó AVR. _ïÄÎÏÊ ÉÚ_ ÐÒÏÂÌÅÍ. òÅÁÌØÎÙÈ ÐÒÏÂÌÅÍ.

AB>>> ÷ÓÅ ÐÒÏÓÔÏ. åÓÌÉ ÈÏÞÅÛØ - ÏÂÒÁÝÁÅÛØÓÑ ËÏ ×ÓÅÊ ÐÁÍÑÔÉ ÏÄÎÉÍÉ É AB>>> ÔÅÍÉ ÖÅ ËÏÍÁÎÄÁÍÉ Ó 16-ÂÉÔÎÙÍ ÁÄÒÅÓÏÍ. GS>> íÅÄÌÅÎÎÏ ÜÔÏ. AB> á ÒÅÁÌØÎÏ - ÂÙÓÔÒÅÅ ÞÅÍ × ðéëÅ.

þÕÛØ ÓÏÂÁÞØÑ. ðÏÇÌÑÄÉ ÎÁ ÔÁËÔÏ×ÙÅ ÞÁÓÔÏÔÙ 18-ÇÏ ÓÅÍÅÊÓÔ×Á PIC. ëÓÔÁÔÉ, ÄÌÑ ÌÀÂÉÔÅÌÅÊ "Ó×ÅÒÈÚ×ÕËÁ" ÅÓÔØ scenix ;-)

AB>>> èÏÞÅÛØ ÏÐÔÉÍÁÌØÎÅÅ - ÉÓÐÏÌØÚÕÅÛØ ÄÒÕÇÉÅ ËÏÍÁÎÄÙ. GS>> ÷ ËÏÍÐÌÅËÔÅ ÉģÔ ×ÏÚÍÏÖÎÏÓÔØ ÎÁÒ×ÁÔØÓÑ ÎÁ ÇÌÀË. AB> HÅÔ, ÎÅ ÉÄÅÔ.

áÈ, ÄÁ, ËÏÎÅÞÎÏ, ÔÙ-Ö ÏÔÎÏÓÉÛØÓÑ Ë ÔÅÍ, ËÔÏ ÎÉËÏÇÄÁ ÎÅ ÏÛÉÂÁÅÔÓÑ ;)

AB>>> åÓÔØ ÁÌÇÏÒÉÔÍÙ ÏÐÔÉÍÉÚÁÃÉÉ ËÅÛÉÒÏ×ÁÎÉÑ ÄÁÎÎÙÈ ÉÚ ÐÁÍÑÔÉ AB>>> ÒÅÇÉÓÔÒÁÈ. ëÏÍÐÉÌÑÔÏÒÙ ÉÍÉ ÐÏÌØÚÕÀÔÓÑ É ×ÐÏÌÎÅ ÕÓÐÅÛÎÏ. GS>> áÓÓÅÍÂÌÅÒ - ÜÔÏ ËÏÍÐÉÌÑÔÏÒ? ;-) AB> á ÞÅÌÏ×ÅË ÄÅÌÁÅÔ ÜÔÏ ÅÝÅ ÌÕÞÛÅ.

"äÅÌÁÅÔ ÜÔÏ" ÞÔÏ? áÓÓÅÍÂÌÅÒ - ËÏÍÐÉÌÑÔÏÒ. ðÒÉ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÉ ÎÁ ÁÓÓÅÍÂÌÅÒÅ ÏÐÔÉÍÉÚÁÃÉÅÊ ÚÁÎÉÍÁÅÔÓÑ ÉÍÅÎÎÏ ÞÅÌÏ×ÅË.

AB> ðÒÉÞÅÍ ÕÍÅÎÉÅ ÒÁÚÍÅÝÁÔØ ÄÁÎÎÙÅ ÐÏ ÒÅÇÉÓÔÒÁÍ ÇÏÒÁÚÄÏ ÐÏÌÅÚÎÅÅ ÕÍÅÎÉÑ AB> ÒÁÚÍÅÝÁÔØ ÄÁÎÎÙÅ ÐÏ ÂÁÎËÁÍ.

ôÏÌËÕ-ÔÏ Ó ÜÔÏÇÏ ÕÍÅÎÉÑ, ÅÓÌÉ ÄÁÎÎÙÅ ÎÉËÁË ÎÅ ÐÏÍÅÝÁÀÔÓÑ × ËÕÃÙÊ ÎÁÂÏÒ òïH, ÎÏ ×ÅÌÉËÏÌÅÐÎÏ ×ÌÁÚÑÔ × ÂÁÎË ÒÅÇÉÓÔÒÏ× ;)

GS>>>> ÎÉËÕÄÁ ÎÅ ÄÅÎÅÔÓÑ. ÷ ΣÍ ÂÏÌØÛÉÎÓÔ×Ï ËÏÍÁÎÄ ÒÁÂÏÔÁÀÔ ÌÉÛØ Ó GS>>>> ËÒÏÛÅÞÎÙÍ ÎÁÂÏÒÏÍ ÒÅÇÉÓÔÒÏ×... AB>>> ëÏÔÏÒÙÊ Õ ðéëÁ ÏÄÉÎ. GS>> ëÔÏ "ÏÄÉÎ"? ÷ÙÒÁÖÁÊÓÑ ÑÓÎÅÅ! AB> òÅÇÉÓÔÒ.

"ðÓÉÈ!" (c)

éÎ×ÅÒÓÉÑ É ÏÞÉÓÔËÁ ÒÅÇÉÓÔÒÁ, ÉÎËÒÅÍÅÎÔ/ÄÅËÒÅÍÅÎÔ (× ÔÏÍ ÞÉÓÌÅ Ó ÕÓÌÏ×ÎÙÍ ÐÒÏÐÕÓËÏÍ ËÏÍÁÎÄÙ, ÞÔÏ ÍÏÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÐÒÉ ÏÒÇÁÎÉÚÁÃÉÉ ÃÉËÌÏ×), ×ÓÅ ÂÉÔÏ×ÙÅ ÏÐÅÒÁÃÉÉ (ÏÐÑÔØ ÖÅ Ó ×ÏÚÍÏÖÎÏÓÔØÀ ÕÓÌÏ×ÎÏÇÏ ÐÒÏÐÕÓËÁ ËÏÍÁÎÄÙ), ÓÄ×ÉÇÉ, ÏÂÍÅÎ ÎÉÂÂÌÁÍÉ - ×ÙÐÏÌÎÑÀÔÓÑ ÎÁÄ _ÌÀÂÙÍ_ ÒÅÇÉÓÔÒÏÍ ×ÙÂÒÁÎÎÏÇÏ ÒÅÇÉÓÔÒÏ×ÏÇÏ ÂÁÎËÁ PIC-ËÏÎÔÒÏÌÌÅÒÁ.

AB>>> åÓÌÉ ÂÙ ÔÙ ÍÏÇ ÐÒÏÁÎÁÌÉÚÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ ËÏÍÁÎÄ ðéë É á÷ò, GS>> äÕÍÁÅÛØ, ÅÓÌÉ ÔÅÂÅ ÜÔÏ ÎÅ ÕÄÁÌÏÓØ, ÔÁË É ÄÒÕÇÉÍ - ÎÅ ÐÏÄ ÓÉÌÕ? GS>> ;) AB> ôÅÂÅ - ÎÅ ÐÏÄ ÓÉÌÕ.

äÁ ÎÅÔ, ÄÏÒÏÇÏÊ, ÐÏËÁ ÞÔÏ ÔÙ ÄÅÍÏÎÓÔÒÉÒÕÅÛØ Ó×ϣ ÐÏÌÎÏÅ ÎÅÐÏÎÉÍÁÎÉÅ ÓÉÓÔÅÍ ËÏÍÁÎÄ ÏÂÓÕÖÄÁÅÍÙÈ ÐÒÏÃÅÓÓÏÒÏ×.

AB> á ÅÓÌÉ É ÐÏÄ ÓÉÌÕ, ÔÏ ÔÙ ÜÔÏÇÏ ÎÅ ÐÏËÁÚÙ×ÁÅÛØ. HÁ×ÅÒÎÏÅ ÉÍÉÄÖ Õ ÔÅÂÑ AB> ÔÁËÏÊ.

"éÍÉÄÖ ÎÉÞÔÏ!" (c) éÚÕÞÁÊ ÄÏËÕ, Á ÔÏ ÎÁ ×ÔÏÒÏÊ ÇÏÄ ÏÓÔÁ×ÑÔ ;)

AB>>> × 16-ÂÉÔÎÏÊ ËÏÍÁÎÄÅ ÎÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØÓÑ 16-ÂÉÔÎÙÊ ÁÄÒÅÓ. GS>> äÁ ÞÔÏ ÔÙ ÇÏ×ÏÒÉÛØ? öÁÌËÏ, ÞÔÏ ÎÁ ÆÉÒÍÅ AVR ÜÔÏÇÏ ÎÅ ÚÎÁÌÉ É GS>> ÚÁÞÅÍ-ÔÏ ×ÙÄÕÍÁÌÉ ËÏÍÁÎÄÙ JMP É CALL, ÓÏÄÅÒÖÁÝÉÅ 22-ÂÉÔÎÙÊ ÁÄÒÅÓ GS>> ;) AB> ôÏÞÎÏ. 22-È ÂÉÔÎÙÊ ÁÄÒÅÓ × 16-ÂÉÔÎÏÊ ËÏÍÁÎÄÅ. ôÁË É ÚÁÐÉÛÅÍ. çÅÏÒÇÉÊ AB> ûÅÐÅÌÅ× ÐÒÉÄÕÍÁÌ ÁÒÈÉ×ÁÔÏÒ ÁÄÒÅÓÁ.

HÅ Ñ, Á ÆÉÒÍÁ Atmel, ÎÅ ÁÒÈÉ×ÁÔÏÒ ÁÄÒÅÓÁ, Á ËÏÍÁÎÄÙ Ó 22-È ÂÉÔÎÙÍÉ ÏÐÅÒÁÎÄÁÍÉ.

GS>> á ÚÁÞÅÍ ÔÅÂÅ ÉÍÅÎÎÏ 16-ÔÉ ÂÉÔÎÙÊ ÁÄÒÅÓ? äÌÑ ÍÎÏÇÉÈ ÐÒÁËÔÉÞÅÓËÉÈ GS>> ÚÁÄÁÞ È×ÁÔÉÌÏ ÂÙ, ÓËÁÖÅÍ, 10-12-ÔÉ ÂÉÔÎÏÇÏ ÓÍÅÝÅÎÉÑ. AB> á ÄÌÑ ËÏÔÏÒÙÈ ÎÅ È×ÁÔÉÔ?

óÌÕÞÁÅ×, ËÏÇÄÁ ÔÁËÉ-ÄÁ È×ÁÔÉÔ, ÂÕÄÅÔ ×Ï ÍÎÏ-ÏÇÏ ÒÁÚ ÂÏÌØÛÅ, ÞÅÍ ÐÒÉ "ËÕÃÅÊ" ÓÉÓÔÅÍÅ ÁÄÒÅÓÁÃÉÉ AVR ;)

GS>> ADIW/SBIW Ó ÄÉÁÐÁÚÏÎÏÍ 63 ÁÄÒÅÓÁ ×ÙÇÌÑÄÑÔ ÄÏ×ÏÌØÎÏ ÖÁÌËÏ. AB> ÷ÐÏÌÎÅ ÄÏÓÔÁÔÏÞÎÏ.

äÁ ÔÅÂÅ É 3 ÁÄÒÅÓÁ ÂÕÄÅÔ ÄÏÓÔÁÔÏÞÎÏ ;)

GS>> ðÒÉÍÅÒ ÂÏÌÅÅ-ÍÅÎÅÅ ÎÏÒÍÁÌØÎÏÊ 16-ÔÉ ÂÉÔÎÏÊ ÁÒÉÆÒÍÅÔÉËÉ × 8-ÍÉ GS>> ÂÉÔËÅ ÍÏÖÎÏ ÐÏÇÌÑÄÅÔØ × ÓÉÓÔÅÍÅ ËÏÍÁÎÄ Z80, ÎÏ ÓËÏÒÏÓÔØ GS>> ×ÙÐÏÌÎÅÎÉÑ ËÏÄÁ ÔÁÍ ÎÅ ÒÁÄÏ×ÁÌÁ... AB> éÍÅÎÎÏ ÐÏÜÔÏÍÕ × AVR ÞÉÓÌÏ ËÏÍÁÎÄ ÅÝÅ ÓÏËÒÁÔÉÌÉ

èÏÔÅÌÉ ÂÙ ÓÏËÒÁÔÉÔØ, ÕÂÒÁÌÉ ÂÙ ÎÁÆÉÇ "ËÁÓÔÒÉÒÏ×ÁÎÎÏÅ" ÁÄÒÅÓÎÏÅ ÐÒÏÓÔÒÁÎÓÔ×Ï ÐÏÒÔÏ×. íÏÖÎÏ ÂÙÌÏ ÂÙ ËÕÄÁ ÂÏÌØÛÅ ÐÏÌÅÚÎÙÈ ×ÏÚÍÏÖÎÏÓÔÅÊ ÄÏÂÁ×ÉÔØ...

AB> É ÒÁÚÏÇÎÁÌÉ ÐÏÂÙÓÔÒÅÅ.

äÏ 10, Á ÐÏÔÏÍ 12 íçÃ? é Ó ÖÕÔËÉÍ ÔÒÕÄÏÍ ÄÏ 16 íçÃ. ïÞ-ÞÅÎØ ÓÍÅÛÎÏ! ìÕÞÛÅ ÂÙ ÐÏÕÞÉÌÉÓØ ËÁË ÒÁÚÇÏÎÑÔØ ÐÒÏÃÅÓÓÏÒÙ ÎÁ ÐÒÉÍÅÒÅ scenix'Ï×.

AB>>> ÷ ðéë ÏÇÒÁÎÉÞÉÌÉÓØ 8 ÂÉÔÁÍÉ ÁÄÒÅÓÁ GS>> ðÒÉ ÓÔÒÁÎÉÞÎÏÊ ÏÒÇÁÎÉÚÁÃÉÉ ÐÁÍÑÔÉ, ÉÓÐÏÌØÚÏ×ÁÎÎÏÊ × PIC - ÜÔÏÇÏ GS>> ×ÐÏÌÎÅ ÄÏÓÔÁÔÏÞÎÏ. AB> HÏ ÎÅÕÄÏÂÎÏ.

HÅÕÄÏÂÎÏ? ðÒÏÉÚ×ÏÌØÎÁÑ ÒÁÂÏÔÁ Ó ÓÏÔÎÅÊ-ÄÒÕÇÏÊ ÒÅÇÉÓÔÒÏ× ÕÖ ËÕÄÁ ÕÄÏÂÎÅÅ, ÞÅÍ ÖÏÎÇÌÉÒÏ×ÁÎÉÅ ÎÁ ÖÁÌËÉÈ 32 ÒÅÇÉÓÔÒÁÈ...

AB>>> (+1 ÂÉÔ ×ÙÂÏÒ ÉÓÔÏÞÎÉËÁ/ÐÒÉÅÍÎÉËÁ), ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ, ÂÏÌØÛÅ 256 AB>>> ÂÁÊÔ ÁÄÒÅÓÏ×ÁÔØ ÓÔÁÎÏ×ÉÔÓÑ ÐÒÏÂÌÅÍÁÔÉÞÎÏ. GS>> ë ÓÞÁÓÔØÀ ÆÉÒÍÁ Microchip ÜÔÏÇÏ ÎÅ ÚÎÁÌÁ, ÐÏÔÏÍÕ ÐÒÅÄÕÓÍÏÔÒÅÌÁ GS>> × 18-Í ÓÅÍÅÊÓÔ×Å 12-ÔÉ ÂÉÔÎÕÀ ÁÄÒÅÓÁÃÉÀ ÄÁÎÎÙÈ Ó ÐÏÍÏÝØÀ GS>> ÎÅÓËÏÌØËÉÈ ÒÅÇÉÓÔÒÏ× FSR ;-) AB> ôÙ ÖÅ ÐÏËÌÏÎÎÉË PIC16.

çÄÅ? ñ ÎÅ ÆÁÎÁÔÉË, ÉÓÐÏÌØÚÕÀ ÔÏ, ÞÔÏ ÏÐÔÉÍÁÌØÎÅÅ ;)

AB> úÁÞÅÍ ÓßÅÚÖÁÅÛØ?

ôÙ ÐÒÏÓÉÌ ÁÄÒÅÓÁÃÉÀ ÂÏÌØÛÅ 256 ÂÁÊÔ? ñ ÔÅÂÅ ÐÏËÁÚÁÌ ÎÁ ÃÅÌÏÅ ÓÅÍÅÊÓÔ×Ï PIC-ËÏÎÔÒÏÌÌÅÒÏ×, × ËÏÔÏÒÏÍ ÜÔÏ ÓÄÅÌÁÎÏ. ëÕÛÁÊ...

AB>>> ÷ AVR × 16-ÂÉÔÎÏÊ ËÏÍÁÎÄÅ ×ÏÏÂÝÅ ÎÅ ÓÏÄÅÒÖÉÔÓÑ ÁÄÒÅÓ ïúõ AB>>> (éÓËÌÀÞÅÎÉÅ -- 32-È ÂÉÔÎÙÅ ËÏÍÁÎÄÙ lds/sts, ËÏÔÒÙÅ ÓÏÄÅÒÖÁÔØ AB>>> ÓÒÁÚÕ ×ÓÅ 16 ÂÉÔ), Á ÓÏÄÅÒÖÉÔ 5+5 = 10 ÂÉÔ ÁÄÒÅÓÁ ÉÓÔÏÞÎÉËÁ É AB>>> ÐÒÉÅÍÎÉËÁ, ÔÁË ÞÔÏ ÄÌÑ 32-È ÒÅÇÉÓÔÒÏ× AVR ÉÍÅÅÔ ÂÏÌÅÅ ÐÏÌÎÙÊ AB>>> ÄÏÓÔÕÐ, ÞÅÍ PIC ÄÌÑ 256 ÑÞÅÅË ÐÁÍÑÔÉ. GS>> ëÁË ×ÉÄÉÍ - ÔÙ ÏÛÉÂÁÅÛØÓÑ. ÷ ÄÉÁÐÁÚÏÎÅ ÐÁÍÑÔÉ ÏÔ 33 ÂÁÊÔ ÄÏ 4 GS>> ËÉÌÏÂÁÊÔ ÂÏÌÅÅ ÕÄÏÂÎÙÊ AB> HÏ, ÒÅÁÌØÎÏ - ÂÏÌÅÅ ÍÅÄÌÅÎÎÙÊ.

AVR? äÁ, Ñ × ËÕÒÓÅ ;)

GS>> ÄÏÓÔÕÐ ÏÂÅÓÐÅÞÉ×ÁÅÔ PIC. AB> PIC18

äÌÑ ÔÅÈ, ËÏÍÕ ÜÔÏ ÎÅÏÂÈÏÄÉÍÏ. ëÏÍÕ ÎÅ ÎÕÖÎÏ - ×ÐÏÌÎÅ ÍÏÖÅÔ ÏÂÏÊÔÉÓØ ÂÏÌÅÅ ÄÅۣ×ÙÍÉ PIC16 É PIC12. ëÏÍÕ ÎÕÖÎÏ ÐÏÐÒÏÝÅ É ÐÏÂÙÓÔÒÅÅ, ÍÏÖÅÔ ÇÌÑÄÅÔØ × ÓÔÏÒÏÎÕ SCENIX.

AB>>> ôÏÌØËÏ ÓÒÅÄÉ ÐÒÏÃÅÓÓÏÒÏ× ÖÉÒÎÅÅ, ÞÅÍ PIC/AVR ÁËËÕÍÕÌÑÔÏÒÎÁÑ AB>>> ÁÒÈÉÔÅËÔÕÒÁ ÎÅ ×ÓÔÒÅÞÁÅÔÓÑ, ÔÁË ËÁË ÄÌÑ ÒÅÓÕÒÓÏÅÍËÉÈ ÚÁÄÁÞ AB>>> ÒÅÇÉÓÔÒÏ×ÁÑ ÏÂÙÞÎÏ ÐÏÄÈÏÄÉÔ ÌÕÞÛÅ. GS>> õ PIC ÏÔÎÀÄØ ÎÅ "ÁËËÕÍÕÌÑÔÏÒÎÁÑ" ÓÔÒÕËÔÕÒÁ - ÜÔÏ ÏÓÎÏ×ÎÏÊ GS>> ÉÓÔÏÞÎÉË Ô×ÏÉÈ ÚÁÂÌÕÖÄÅÎÉÊ! AB> þÅÍ ÏÎÁ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÁËËÕÍÕÌÑÔÏÒÎÏÊ?

ïÔ×ÌÅËÉÓØ ÎÁ 15 ÍÉÎÕÔ ÏÔ ÆÌÅÊÍÁ, ÐÏÓÍÏÔÒÉ ×ÎÉÍÁÔÅÌØÎÅÅ ÓÉÓÔÅÍÕ ËÏÍÁÎÄ PIC, ÍÏÖÅÔ É ÐÏÊͣÛØ ;)

AB>>> ÷ÏÔ É AVR ËÏÎËÕÒÉÒÕÅÔ (ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÐÙÔÁÅÔÓÑ) ÓËÏÒÅÅ Ó AB>>> 16-ÂÉÔËÁÍÉ GS>> ðÏ ÄÏÒÏÇÅ ÐÒÏÉÇÒÙ×ÁÑ PIC'Õ ;))) AB> òÁÚ×Å ÞÔÏ ÐÏ ÐÏÔÒÅÂÌÅÎÉÀ.

óÎÏ×Á ÂÕÄÅÍ ûéí É áãð ÓÒÁ×ÎÉ×ÁÔØ? é ÍÁÎÉÐÕÌÑÃÉÀ ÎÏÖËÁÍÉ ÐÏÒÔÏ×? ïÐÑÔØ ×ÅÄØ Ó ÔÒÅÓËÏÍ ÐÒÏÄÕÅÛØ ;)

AB>>> åÓÌÉ ÏÐÅÒÁÎÄ ÏÄÉÎ - ÔÏ ÎÅÏÂÑÚÁÔÅÌØÎÏ. åÓÌÉ ÏÐÅÒÁÎÄÁ Ä×Á - ÔÏ AB>>> ÏÂÑÚÁÔÅÌØÎÏ. GS>> úÁÞÅÍ ÍÎÅ ×ÔÏÒÏÊ ÏÐÅÒÁÎÄ, ÅÓÌÉ Ñ, Ë ÐÒÉÍÅÒÕ, ÈÏÞÕ ÓÞÉÔÁÔØ GS>> ÓÏÓÔÏÑÎÉÅ ÐÏÒÔÁ Ó ÉÎ×ÅÒÓÉÅÊ? éÌÉ ×ÙÐÏÌÎÉÔØ ÐÅÒÅÈÏÄ ÐÏ ÓÏÓÔÏÑÎÉÀ GS>> ËÏÎËÒÅÔÎÏÇÏ ÂÉÔÁ ÜÔÏÇÏ ÐÏÒÔÁ? éÌÉ ÚÁÐÕÓÔÉÔØ ÉÎËÒÅÍÅÎÔ/"ÂÅÇÕÝÉÊ GS>> ÂÉÔ" ÎÁ ËÁËÏÍ-ÔÏ ÉÚ ÐÏÒÔÏ×? AB> HÕ ×ÏÔ.

þÔÏ "ÎÕ"? þÔÏ "×ÏÔ"?

AB> ñ ÖÅ ×ÉÖÕ, ÞÔÏ ÔÙ ÎÅ ÍÏÖÅÛØ ÐÒÏÁÎÁÌÉÚÉÒÏ×ÁÔØ ÓÉÓÔÅÍÕ ËÏÍÁÎÄ.

üÔÏ ÔÙ ×ӣ ÎÅ ÍÏÖÅÛØ ;-)

AB>>> (õ ARM ÏÐÅÒÁÎÄÏ× ÍÏÖÅÔ ÂÙÔØ ÞÅÔÙÒÅ ÛÔÕËÉ!) GS>> âÙÓÔÒÏ ÚÁÐÒÑÇÁÅÔ - ÍÅÄÌÅÎÎÏ ÅÄÅÔ ;) AB> óËÏÒÅÅ ÎÁÏÂÏÒÏÔ.

íÅÞÔÁÊ, ÍÅÞÔÁÊ...

GS>> ðÒÉ ÎÅÏÂÈÏÄÉÍÏÓÔÉ ÓËÏÒÏÓÔÎÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÐÏÒÔÏ× - GS>> ÐÒÏÉÇÒÁÅÛØ... AB> ëÏÒÏ×Õ?

ôÙ ÈÏÞÅÛØ ÉÇÒÁÔØ ÎÁ ËÏÒÏ×Õ? ïÔÐÁÄÁÅÔ, Ñ ÐÒÏÄÏ×ÏÌØÓÔ×ÅÎÎÕÀ ÐÒÏÇÒÁÍÍÕ ×ÓÅÇÏ ÎÁÒÏÄÁ ÎÅ ÒÅÛÁÀ ;)

AB> äÌÑ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÓËÏÒÏÓÔÎÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÐÏÒÔÏ×, ÎÕÖÎÏ ÉÓÐÏÌØÚÏ×ÁÔØ AB> PLD.

âÕÄÅÔ ÏÞÅÎØ ÚÁÂÁ×ÎÏ ÐÏÇÌÑÄÅÔØ, ËÁË ÔÙ ÒÅÁÌÉÚÕÅÛØ ÍÉÎÉáôó ÓÒÅÄÓÔ×ÁÍÉ PLD ;-D

AB>>> ëÁË ÎÁÐÉÛÅÛØ. GS>> ôÙ ÍÏÖÅÛØ ÌÕÞÛÅ ÎÁÐÉÓÁÔØ? äÁ×ÁÊ! ñ ÐÒÉ×ÏÖÕ ÐÒÉÍÅÒÙ ËÏÄÁ ÄÌÑ PIC, GS>> Á ÔÙ ÉÚÏÂÒÁÖÁÊ ÁÎÁÌÏÇ ÄÌÑ AVR.

GS>> óÍÅÎÁ ÓÏÓÔÏÑÎÉÑ ÎÏÖÅË × ÚÁÄÁÎÎÙÊ ÍÏÍÅÎÔ ×ÒÅÍÅÎÉ (Ë GS>> ÐÒÉÍÅÒÕ ÍÏÖÎÏ ×ÙÄÁ×ÁÔØ Ä×Á ÐÒÏÔÉ×ÏÆÁÚÎÙÈ ÍÅÁÎÄÒÁ): GS>> XORWF PORTx,1 AB> 4 ËÏÍÁÎÄÙ.

1 ËÏÍÁÎÄÁ PIC ÎÁ 40 íçà - 100 ÎÓ. 4 ËÏÍÁÎÄÙ AVR ÎÁ 16 íçà - 250 ÎÓ. AVR ÐÒÏÉÇÒÁÌ ÓÏ ÓޣÔÏÍ 100:250, "ÚÁÇÁÄÉÌ" ÑÞÅÊËÕ òïH, ÐÏÔÅÒÑÎÁ ×ÏÚÍÏÖÎÏÓÔØ ÍÅÎÑÔØ × ÜÔÏÍ-ÖÅ ÐÏÒÔÕ ÓÏÓÔÏÑÎÉÑ ÂÉÔ × ÐÒÅÒÙ×ÁÎÉÉ...

GS>> ðÒÏÐÕÓË ËÏÍÁÎÄÙ ÐÏ ÓÏÓÔÏÑÎÉÀ ÚÁÄÁÎÎÏÇÏ ÂÉÔÁ ÐÏÒÔÁ: GS>> BTFSC PORTx,BITy AB> 1 ËÏÍÁÎÄÁ.

HÅ ÓÍÅÛÉ! ôÏÌØËÏ ÄÌÑ ÖÁÌËÉÈ 32 ÐÏÒÔÏ×, ÏÓÔÁÌØÎÙÍÉ ÐÒÉģÔÓÑ "ÖÏÎÇÌÉÒÏ×ÁÔØ". ä×Å ËÏÍÁÎÄÙ AVR, "ÚÁÇÁÖÉ×ÁÎÉÅ" ÑÞÅÊËÉ òïH, ÐÒÏÉÇÒÙÛ 200:250...

GS>> óÞÉÔÙ×ÁÎÉÅ ÄÁÎÎÙÈ ÉÚ ÐÏÒÔÁ Ó ÉÎ×ÅÒÓÉÅÊ: GS>> COMF PORTx,0 AB> á ÉÎ×ÅÒÓÉÑ ÚÁÞÅÍ?

á ÂÉÔÉËÉ ÎÁÖÁÔÉÊ Ó ÍÁÔÒÉÃÙ ËÌÁ×ÉÁÔÕÒÙ ×ÙÄÁÀÔÓÑ _ÎÏÌÉËÁÍÉ_. á ÖÅÌÁÔÅÌØÎÏ ÉÍÅÔØ ÅÄÉÎÉÞËÉ. ïÐÑÔØ AVR ÐÒÏÉÇÒÙ×ÁÅÔ.

AB> åÓÌÉ ÂÅÚ ÉÎ×ÅÒÓÉÉ - ÏÄÎÁ ËÏÍÁÎÄÁ.

æÉÇÕÛËÉ, Ó ÉÎ×ÅÒÓÉÅÊ ÎÁÄÏ! åÓÌÉ ÔÅÂÅ ÐÏ×ÅڣÔ É ÄÁÎÎÙÅ × 64 "ÎÏÒÍÁÌØÎÙÈ" ÐÏÒÔÁÈ - ÏÂÏÊģÛØÓÑ ËÏÍÁÎÄÁÍÉ IN É COM (AVR ÐÒÏÉÇÒÁÌ ÓÏ ÓޣÔÏÍ 200:250), ÅÓÌÉ ÎÅ ÐÏ×ÅڣÔ - ÏÂßÅÚÄ ÂÕÄÅÔ Åݣ ÄÌÉÎÅÅ...

GS>> "âÅÇÕÝÉÅ ÂÉÔÙ" ÎÁ ÚÁÄÁÎÎÏÍ ÐÏÒÔÕ (ÓËÁÎÉÒÏ×ÁÎÉÅ ÕÓÔÒÏÊÓÔ× GS>> ÉÌÉ ÆÏÒÍÉÒÏ×ÁÎÉÅ "ÍÎÏÇÏÆÁÚÎÙÈ" ÓÉÇÎÁÌÏ×): GS>> RLCF PORTx,1 GS>> ÉÌÉ GS>> RRCF PORTx,1 AB> 2 ËÏÍÁÎÄÙ ÄÌÑ ÇÉÒÌÑÎÄÙ. á ÔÁË 3.

óÁÍ ÐÏÄÓÞÉÔÁÊ ÐÒÏÉÇÒÙÛ.

AB>>> ðÒÏÇÒÁÍÍÉÒÏ×ÁÔØ ðéë ÎÁ ÁÓÓÅÍÂÌÅÒÅ ËÒÁÊÎÅ ÎÅÕÄÏÂÎÏ. GS>> íÁËÒÏÓÁÍÉ ÐÏÌØÚÏ×ÁÔØÓÑ ÎÁÕÞÉÓØ! AB> á Ñ ÕÍÅÀ. óÉÛÎÙÍÉ.

é ÐÏÌÕÞÁÅÛØ ËÏÄ, ÒÁÂÏÔÁÀÝÉÊ ÍÅÄÌÅÎÎÅÅ, ÞÅÍ ÔÏ-ÖÅ ÓÄÅÌÁÅÔ PIC.

AB> ps: ðÏÞÉÔÁÊ ÁÒÈÉ×. ôÕÔ ÎÅÄÁ×ÎÏ ÐÒÉ×ÏÄÉÌÉÓØ ÐÒÏÇÒÁÍÍÙ ÎÁ óÉ, AB> ÓËÏÍÐÉÌÉÒÏ×ÁÎÎÙÍÉ ÒÁÚÎÙÍÉ ËÏÍÐÉÌÑÔÏÒÁÍÉ ÐÏÄ ÒÁÚÎÙÅ ÁÒÈÉÔÅËÔÕÒÙ.

á ÇÄÅ Ñ ÇÏ×ÏÒÉÌ, ÞÔÏ ÍÎÅ ÎÒÁ×ÉÔÓÑ ÜÆÆÅËÔÉ×ÎÏÓÔØ ÓÉÛÎÏÇÏ ËÏÍÐÉÌÑÔÏÒÁ ÄÌÑ PIC'Ï×? HÁ ÁÓÓÅÍÂÌÅÒÅ ÜÔÏ ÎÁÄÏ ÄÅÌÁÔØ, ×ÏÔ ÔÏÇÄÁ ×ӣ ÐÏÌÕÞÁÅÔÓÑ ËÁË ÎÁÄÏ...

AB> é ÓÒÁ×ÎÉ ÒÅÚÕÌØÔÁÔ.

÷ÙÛÅ ;)

AVR ÂÙÓÔÒÏ ÚÁÐÒÑÇÁÅÔ, ÎÏ ÍÅÄÌÅÎÎÏ ÅÄÅÔ...

çÅÏÒÇÉÊ

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required