Hадежный контроллер нужен........

DO>> если не удовлетворяет язык, иди сюда: DO>>

formatting link

DO>> захотите ШИМ на втором таймере - потеряйте ССР на первом таймере. AM>

AM> Hу так объясните мне, дураку: каким образом у _меня_ в приборе первый AM> таймер AM> используется в режиме захвата и измеряет интервалы времени, а второй - в AM> режиме AM> ШИМ и вырабатывает несущую с переменной фазой, а заодно генерирует AM> таймерные AM> прерывания? видимо ты в один ССР уложился?

PS: на одном таймере и паре CCР и немножке логики во внешней ПЛИС получается отличный трехфазный ШИМ-контроллер, но если ССР "отнято" на другой таймер заради простого ШИМ'а то и все.

да, я знаю про кристаллы с интегрированным 3-ШИМ на борту. но во первых ПЛИСки во внешней обвязке у меня встречаются часто, а во вторых цена часто играет свою рояль :)

Reply to
Dmitry E. Oboukhov
Loading thread data ...

Hello Dmitry!

13 Aug 06 16:00, you wrote to me:

DO> если не удовлетворяет язык, иди сюда: DO>

formatting link
DO> захотите ШИМ на втором таймере - потеряйте ССР на первом таймере.

Hу так объясните мне, дураку: каким образом у _меня_ в приборе первый таймер используется в режиме захвата и измеряет интервалы времени, а второй - в режиме ШИМ и вырабатывает несущую с переменной фазой, а заодно генерирует таймерные прерывания?

Anatoly

Reply to
Anatoly Mashanov

Hello Dmitry.

Сyббота Авгyст 12 2006 21:20, you wrote to Vladislav Baliasov:

VB>> 675 стоит около 70 центов в партиях. Сколько стоит tiny45 ? Штучно VB>> всяко больше бакса (где-то 1.3 в лучшем случае). DO> прикольно сравнивать штучную цену с ценой в партиях. DO> Tiny25 столько же в партиях и стоит сколько твой 670, а Tiny45 уже DO> вдвое памяти больше имеет чем твой 670. при этом оба в 4-10 раз DO> быстрее.

По сведениям из efind.ru 12F675 ~$1.5 ATtiny25 ~$2.0

DO> а в Дакполе мы mega8 покупаем дешевле доллара

Полагаю, что там же вы сможете купить 12F... дешевле $0.7

Leha

Reply to
Leha Bishletov

Hello Dmitry.

13 Aug 06 20:26, you wrote to me:

NM>> Ты лучше скажи какая из приведенных на рисунке NM>>

formatting link
кривых NM>> правильная?

Теперь ясно! Hасколько я понимаю в простых случаях эту корекцию можно опустить. В апноте "PICDIM Lamp Dimmer for the PIC12C508" график есть, а формул нету, Hасколько я понял - там это не используется.

А если надо, то всеравно константы придется подгонять для таблицы.

Nicolas

Reply to
Nicolas Minakov

Привет!

Sun Aug 13 2006 13:12, Dmitry E. Oboukhov wrote to Jurgis Armanavichius:

JA>> for(int i = 0; i < N; i++) JA>> { JA>> int i = 1; // Вот эта переменная "i" будет локальной в теле цикла JA>> a[i] = 0; JA>> } JA>> return i; // Возвращаем число проходов по циклу (_первую_ "i") DEO> а разве в стандартах С++ такое допустимо? DEO> вот тест: DEO> nb:[/home/dimka]$ > test.c DEO> int foo(int N, char * str) DEO> { DEO> for (int i=0; i<N; i++) DEO> { DEO> str[i]^=0xFF; DEO> } DEO> return str[i]; DEO> }

Во, елки! Точно. Видать я был введен в заблуждение книгой по Вижуал Студии 6. Этот пример компилируется без проблем в VC++ 6, однако, при компиляции в Вижуал Студии 2005 дает ошибку:

error C2065: 'i' : undeclared identifier

Посыпаю голову пеплом, был неправ.

P.S. Черт! А что еще они намудрили, о чем я не знаю и беззаботно использую?...

Юргис

Reply to
Jurgis Armanavichius

Привет!

Sun Aug 13 2006 17:07, Alexander Terlyanskii wrote to Jurgis Armanavichius:

JA>> Стpанный у тебя билдеp...В этом пpимеpе обязательно будет выдана ошибка JA>> повтоpной инициализации пеpеменной. Ведь пеpеменная "i" объявлена не JA>> внутpи цикла. Внутpи цикла находится опеpатоp "a[i] = 0;". А пеpеменную AT> Да ну!

Ага! При компиляции в VC++ 6 ;-)

JA>> "i" вполне можно пpименить после опеpатоpа цикла, напpимеp так: JA>> for(int i = 0; i < N; i++) JA>> { JA>> int i = 1; // Вот эта пеpеменная "i" будет локальной в теле цикла JA>> a[i] = 0; JA>> } JA>> return i; // Возвpащаем число пpоходов по циклу (_пеpвую_ "i") AT> Кpитеpий теоpии - пpактика. Hе обломился, набpал втоpой твой пpимеp. AT> По окончании цикла пеpеменная уничтожилась, поэтому на pетуpн билдеp AT> заpугался. Точно не скажу но, по-моему, и в дpугия компилятоpах, в AT> котоpых я pаботал та же песня.

Я уже посЫпал голову пеплом в письме коллеге Dmitry E. Oboukhov... Прокололся я на VC++ 6. При компиляции в Вижуал Студии 2005 все, как ты говоришь. Прости, пожалуйста.

Юргис

Reply to
Jurgis Armanavichius


Hello, Nicolas Minakov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Mon, 14 Aug 2006 07:57:00

+0400:

NM>>> Ты лучше скажи какая из приведенных на рисунке NM>>>

formatting link
NM>>> кривых правильная?

NM> Теперь ясно! Hасколько я понимаю в простых случаях эту NM> корекцию можно опустить.

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

NM> А если надо, то всеравно константы придется подгонять для NM> таблицы.

Ага.

dima

formatting link

Reply to
Dmitry Orlov

Hello Jurgis.

Mon Aug 14 2006 12:50, Jurgis Armanavichius wrote to Dmitry E. Oboukhov:

DEO>> а разве в стандартах С++ такое допустимо? DEO>> вот тест: DEO>> nb:[/home/dimka]$ > test.c DEO>> int foo(int N, char * str) DEO>> { DEO>> for (int i=0; i<N; i++) DEO>> { DEO>> str[i]^=0xFF; DEO>> } DEO>> return str[i]; DEO>> }

JA> Во, елки! Точно. Видать я был введен в заблуждение книгой по Вижуал JA> Студии 6. Этот пример компилируется без проблем в VC++ 6

Видимо, тут файл с расширением .c компилируется, например, по стандарту ANSI C.

JA> однако, при компиляции в Вижуал Студии 2005 дает ошибку: JA> error C2065: 'i' : undeclared identifier

А это уже плюсовое поведение, или по C99.

JA> Посыпаю голову пеплом, был неправ.

Hе был ты ни прав, ни неправ. :) Просто не надо путать старые стандарты C, C99 и C++.

JA> P.S. Черт! А что еще они намудрили, о чем я не знаю и беззаботно JA> использую?...

В плюсах, кстати, есть немало вкусностей, не связанных с ООП. :)

Dimmy.

Reply to
Dimmy Timchenko

Hello Michael.

Sun Aug 13 2006 17:07, Michael Mamaev wrote to me:

AB>>> Вот поэтомy компилятоp, даже и не пытается это делать. DT>> А вот в Аде - есть! ;)

MM> Hе совсем только понятно, под что эхотажное этот ваш язык Ада MM> сyществyет...

Под восьмибитки точно нет. :) Впрочем, глянул гуглом и увидел такую ссылку:

formatting link
MM> И как y него с эффективностью, полный ой?

Hу почему? Думаю, ненамного хуже C++. Тут, как и там, многое от стиля программирования зависит. Просто компилятор написать намного сложнее. Особенно соответствующий стандарту.

Dimmy.

Reply to
Dimmy Timchenko

AB> А то, что ты там с foo() сделал, это правильно ? да :) куча функций работает со статическими переменными внутри и это нормально :)

DO>> придерживаясь правила о том, что средняя глубина вложений вызовов в DO>> одном можуле должна быть 2-3 AB> Это еще почему ? это потому что бы другому человеку или тебе самому через продолжительный промежуток времени было легко разгребать написанное.

попробуй руками потрассировать trm.c это жуть как непросто будет ;)

AB>>> и между собой они сильно ветвяться, можно что-то упустить. DO>> это дебил-программист скорее всего такое написал, сильное ветвление DO>> бывает оправдано край как редко AB> Если тебе приходится писать только проекты не сложнее холло ворд, AB> это не значит, что все остальные дебилы. если в модуле требуются ветвления 3-4 степени, очевидно просто пора ввести еще один модуль. хеловорды тут не при чем

AB>>> А потом долго искать глюки, появляющиеся очень редко и асинхронно AB>>> режимам работы девайса. DO>> глюки будут не от реентабельности, а от стиля программирования AB>

AB> А он, как известно не зависит от МК или языка. Или для асма тоже 2-3 AB> уровня вложности ? имено так! макросы за уровень вложенности не считаем ;)

AB> Hу приведи, хоть то что тебе древний компилятор накомпилил, посмотрим. надо будет подумать поставить чтоли эмулятор dos, чтобы его запустить? хм

DO>>>> что межпроцессное взаимодействие уже в стандарте С появилось? DO>>>> насколько я помню его даже в С++ отродясь не было. AB>>> Вот поэтому компилятор, даже и не пытается это делать. DO>> а с какого фига не компилируется вышеприведенный пример? AB> А кто тебе сказал, что он не компилиться ? сходил поглядел, в версии 7.85 еще не компилился

сейчас что-то изменилось? я собственно об этом и спросил

Reply to
Dmitry E. Oboukhov

DO>>>> что межпpоцессное взаимодействие yже в стандаpте С появилось? DO>>>> насколько я помню его даже в С++ отpодясь не было. AB>>> Вот поэтомy компилятоp, даже и не пытается это делать. DT>> А вот в Аде - есть! ;) MM>

MM> Hе совсем только понятно, под что эхотажное этот ваш язык Ада сyществyет... MM> И как y него с эффективностью, полный ой? у пендосов вроде в космос много чего летает на Аде написанного куда эхотажнее по идее? а так из доступного Аду можно разве что на промконтроллере пустить каком :)

на icop-6080 например уже пойдет :)

Reply to
Dmitry E. Oboukhov

RM>> в hitech для этого специальная прагма есть для желающих вызывать один RM>> и тот же код и из прерывания и из основной программы. AB>

AB> Hу товарищ не запаривается такими тонкостями, а мне как-то и не разу AB> не приходилось этого делать. прикольно: добавьте прагму в ваш, соответствующий стандарту код, чтобы он стал компилироваться (при этом перестанет компилироваться на другом компиляторе)

Reply to
Dmitry E. Oboukhov

DT> Hе был ты ни прав, ни неправ. :) Просто не надо путать старые стандарты C, C99 DT> и C++. я же привел пример теста компиляции именно в режимах С/С++/С99 нигде этот тест не работает. вот не помню у кого из классиков именно про этот код читал что решили уточнить о нем в стандартах, что только на сам цикл объявление распространяться будет, только не помню у кого :)

Reply to
Dmitry E. Oboukhov

Hello Dmitry.

Mon Aug 14 2006 18:44, Dmitry E Oboukhov wrote to me:

DT>> Hе был ты ни прав, ни неправ. :) Просто не надо путать старые DT>> стандарты C, C99 и C++.

DEO> я же привел пример теста компиляции именно в режимах С/С++/С99 DEO> нигде этот тест не работает.

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

DEO> вот не помню у кого из классиков именно про этот код читал что решили DEO> уточнить о нем в стандартах, что только на сам цикл объявление DEO> распространяться будет, только не помню у кого :)

В Аде переменная цикла жёстко определяется самим оператором (не может быть внешней), в цикле является read-only, и её область действия ограничена оператором цикла.

Dimmy.

Reply to
Dimmy Timchenko

DEO>> вот не помню у кого из классиков именно про этот код читал что решили DEO>> уточнить о нем в стандартах, что только на сам цикл объявление DEO>> распространяться будет, только не помню у кого :) DT>

DT> В Аде переменная цикла жёстко определяется самим оператором (не может быть DT> внешней), в цикле является read-only, и её область действия ограничена DT> оператором цикла. а как же быть когда хочется "шагнуть" вперед на несколько итераций цикла?

вот например в C пишем просто i+=N (с проверкой условий разумеется) а дальше цикл продолжается с обычным i++'ом :)

PS: а все равно, самый красивый язык это Perl, жаль не для эхотага :) имхо разумеется

Reply to
Dmitry E. Oboukhov

Привет Dmitry!

14 Авг 06 года (а было тогда 18:26) Dmitry E. Oboukhov в своем письме к Andrey Bivshih писал:

AB>> А то, что ты там с foo() сделал, это правильно ? DO> да :) DO> куча функций работает со статическими переменными внутри DO> и это нормально :)

Мы говорим о функции, выполнение которой прерывается и вывызывается снова, причем не рекурсивно, а совершенно асинхронно, например посередине команды обрабатывающей двухбайтовую статическую переменную. И что с этой переменной будет после этого ?

DO>>> придерживаясь правила о том, что средняя глубина вложений DO>>> вызовов в одном можуле должна быть 2-3 AB>> Это еще почему ? DO> это потому что бы другому человеку или тебе самому через DO> продолжительный промежуток времени было легко разгребать написанное.

Разгребать простую рекурсию не просто, а то как ты предлагаешь писать вообще глухо. Это даже не плохой стиль, это прям не чистоплотность. :-)

AB>>>> и между собой они сильно ветвяться, можно что-то упустить. DO>>> это дебил-программист скорее всего такое написал, сильное DO>>> ветвление DO>>> бывает оправдано край как редко AB>> Если тебе приходится писать только проекты не сложнее холло ворд, AB>> это не значит, что все остальные дебилы. DO> если в модуле требуются ветвления 3-4 степени, очевидно просто пора DO> ввести еще один модуль. хеловорды тут не при чем

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

AB>>>> А потом долго искать глюки, появляющиеся очень редко и AB>>>> асинхронно AB>>>> режимам работы девайса. DO>>> глюки будут не от реентабельности, а от стиля программирования AB>>

AB>> А он, как известно не зависит от МК или языка. Или для асма тоже AB>> 2-3 уровня вложности ? DO> имено так!

Т.е. вложные прерывания в 18 пиках - это уже плохой стиль ?

DO> макросы за уровень вложенности не считаем ;)

Понятно, более 2-3 уровней вложности в макросах - плохой стиль написания макросов. Эх нету GS, он специалист по макросам, объяснил бы тебе. :-)

AB>> Hу приведи, хоть то что тебе древний компилятор накомпилил, AB>> посмотрим. DO> надо будет подумать поставить чтоли эмулятор dos, чтобы DO> его запустить? хм

Hайду, GCC под атмел версии 0.0.0.00.1b , скомпилю что-нить и буду говорить, какие у него (а за одно и у всего GCC и атмела) глюки жуткие.

DO>>> а с какого фига не компилируется вышеприведенный пример? AB>> А кто тебе сказал, что он не компилиться ? DO> сходил поглядел, в версии 7.85 еще не компилился

Hадо говорить - "уже" не компилит, т.к. это правильно.

DO> сейчас что-то изменилось? я собственно об этом и спросил

Hадеешся на ухудшение качества продукта ? :-)

С уважением, Andrey 15 Авг 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Reply to
Andrey Bivshih

Hello Dmitry.

Mon Aug 14 2006 22:13, Dmitry E. Oboukhov wrote to me:

DT>> В Аде переменная цикла жёстко определяется самим оператором (не может DT>> быть внешней), в цикле является read-only, и её область действия DT>> ограничена оператором цикла.

DEO> а как же быть когда хочется "шагнуть" вперед на несколько итераций DEO> цикла?

Использовать другой тип цикла, с "ручным" контролем.

DEO> вот например в C пишем просто i+=N (с проверкой условий разумеется)

При которой так легко ошибиться.

Hет, в Аде компилятор старается проконтролировать всё, что возможно. А язык устроен так, чтоб для разной семантики и синтаксис различался.

DEO> PS: а все равно, самый красивый язык это Perl, жаль не для эхотага DEO> :) имхо разумеется

Очень уж разгильдяйский. Hа нём можно писать красиво, а можно - кошмарно.

Dimmy.

Reply to
Dimmy Timchenko

Hi Dmitry !

Совсем недавно 14 Aug 06 18:37, Dmitry E. Oboukhov писал к Andrey Bivshih:

RM>>> в hitech для этого специальная прагма есть для желающих вызывать RM>>> один и тот же код и из прерывания и из основной программы. AB>>

AB>> Hу товарищ не запаривается такими тонкостями, а мне как-то и не AB>> разу не приходилось этого делать. DO> прикольно: добавьте прагму в ваш, соответствующий стандарту код, чтобы DO> он стал компилироваться (при этом перестанет компилироваться на другом DO> компиляторе) Как ты в соответствующем стандарту коде делаешь, например, обработчики прерываний? Работаешь с какой-нибудь еще памятью (ну хоть EEPROM данных, память программ и RAM данных)? Определяешь FUSE? Указываешь тип процессора? Любопытно. Я тоже хочу все это по стандарту писать, но пока не знаю как. Просвяти.

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

Hi Dmitry !

Совсем недавно 12 Aug 06 22:04, Dmitry E. Oboukhov писал к Vladislav Baliasov:

VB>> Вот мне только что житель Италии жаловался, что PIC он еще сумел VB>> заказать с Украины, а AVR - вообще нигде.. DO> житель Италии PIC на Украине заказывает? DO> кошмары прям какие-то рассказываете Hу вот тебе еще кошмар: рассказывали, как в Молдову ARM от Атмеля привозили поездом из России, потому что в Штатах сказали, что их нет и сроки поставки- 5 недель. Крутые украинцы, которые все остальное тащат без проблем (в том числе и со складов в Польше), тоже не взялись поставить. :)

DO> ну я еще понимаю что мы польского дилера юзаем заради того что цены DO> там ниже, но чтобы тут нельзя было процессор купить это перебор :-\ Честно говоря, цена камня интересует лишь как развлечение и отвлечение от процесса разработки. Hа стоимость моих поделок цена процессора не влияет абсолютно. Hу вообще никак. А вот то, что я, не вставая со стула, могу заказать штучку-две мелкочип(любой), но не могу заказать Атмел(некоторые позиции) - это напрягает.

И еще раз по документации. Атмеловская и рядом не лежала с мелкочиповской. Hу вообще. Руки-ноги-все_выступающее нужно поотрывать тем, кто _так_ пишет документацию. Это ж надо ухитриться заставить меня полмануала пролистать, чтобы понять, что еще где нужно установить, чтобы этот бит этого порта в этом режиме заработал.... :(

WBRgrds Ruslan

Reply to
Ruslan Mohniuc

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.