enum {S0=0, S1, S2, S3, S4...} state;
Точно.
enum {S0=0, S1, S2, S3, S4...} state;
Точно.
Ещё интересный вариант -- указатель на функцию-состояние. Впрочем, я склоняюсь к тому, чтобы иметь состояние представимое в числовом виде (как в случае с switch-case) и дополнительно указатель на функцию, для быстрого выбора нужного состояния (первое нужно для просверки состояния в других автоматах, а действия в разных состояниях могут быть объединены в одну функцию). Плюс нужен какой-то планировщик для запуска автоматов. Иначе неэффективно, тратится масса времени на бесполезные проверки условий переходов.
Здравствуйте, Уважаемый Nicolas!
Tue Jul 04 2006 19:12, Nicolas Minakov wrote to Olga Nonova:
NM> Ольга, так а что у Вас получилось?
Да, у меня все работает. Гложет только ощущение неэффективности компиляции, которая впрочем с лихвой компенсируется быстродействием процессора.
NM> Чем компилировали? Под какой камень? Тут достаточно квалифицированных NM> людей, чтоб помочь, конечно если оно Вам действительно нужно.
Спасибо на добром слове. А то я уже отчаялась получить в ответ что-либо, кроме бессмысленного хамства. Работаю я с MCF5270 "ColdFire", это из серии 68K от FreeScale. Пакет разработки на С++ от GNU. И я столкнулась с проблемой, что в С++ (не только в GNU компайлере!) оператор switch производит перебор всех case-ов, пока не произойдет сравнение с искомым. Та-же история и в Дельи. Внимание, вопрос: Какие есть варианты реализовать в С++ или Дельфях максимально эффективное ветвление, чтоб без перебора и без ограничений на тип выражения case-ов?
Всего Вам Хорошего Ольга
Hello Dmitry!
04 Jul 06 07:18, you wrote to Olga Nonova:ON>> ïÞÅÎØ ÈÏÞÅÔÓÑ ÕÚÎÁÔØ, ËÁË ÎÁÉÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÏ × ó ÒÅÁÌÉÚÏ×ÁÔØ ON>> subj. ðÒÏÓÔÅÊÛÉÊ ÐÒÉÅÍ ÞÅÒÅÚ ÏÐÅÒÁÔÏÒ switch ÍÎÅ ÉÚ×ÅÓÔÅÎ, ÎÏ ON>> ×ÅÄØ ÏÎ, ÐÏÈÏÖÅ, ÒÁÂÏÔÁÅÔ ÐÅÒÅÂÏÒÏÍ ×ÓÅÈ case-Ï×.
DO> ïÔËÒÏÊÔÅ ÄÌÑ ÓÅÂÑ ÏÐÅÒÁÔÏÒ break
ðÒÉÞÅÍ ÚÄÅÓØ break? break ÎÁ ÕÒÏ×ÎÅ ÍÁÛÉÎÎÏÇÏ ÑÚÙËÁ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÅÄÉÎÓÔ×ÅÎÎÙÊ ÏÐÅÒÁÔÏÒ ÐÅÒÅÈÏÄÁ. á ÏÐÅÒÁÔÏÒ switch × ÏÂÝÅÍ ÓÌÕÞÁÅ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÃÅÐÏÞËÕ ÕÓÌÏ×ÎÙÈ ÏÐÅÒÁÔÏÒÏ× ÐÅÒÅÈÏÄÁ ÐÏ ÏÄÎÏÍÕ ÎÁ ÕÓÌÏ×ÉÅ. éÎÁÞÅ ÇÏ×ÏÒÑ, ÎÁ ËÁÖÄÙÊ case N ÍÙ ÐÏÌÕÞÁÅÍ movf state,w; xorlw N; btfsc status,z; bra next_case (üÔÏ Ñ ÄÌÑ ÐÉËÁ ÐÉÛÕ - ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÐÏÓÔÁ×ÉÔØ É ÌÀÂÕÀ ÄÒÕÇÕÀ ÍÁÛÉÎÕ) - É ÔÁËÉÈ ÓÒÁ×ÎÅÎÉÊ ÍÎÏÇÏ!Anatoly
Афтары зажигают аж жуть. Во-первых не всех. А вплоть до log2(N). А во вторых есть и табличный метод. И наконец -O3 -Wall и -S в студию.
04 Jul 06 , 18:34 Olga Nonova ÐÉÓÁÌ Ë Alexandr Torres:
AT>> äÅÌÏ ÎÅ × ÏÇÒÁÎÉÞÅÎÉÑÈ ÎÁ ÔÉÐ × Ó×ÉÔÞÅ, Á ÎÁ äHë ÒÁÚÒÁÂÏÔÞÉËÁ, AT>> ÐÉÛÕÝÅÇÏ ÓÔÅÊ-ÍÁÛÉÎÕ.
ON> á ËÁË ÂÙÔØ Ó äHë Á×ÔÏÒÏ× C++?
HÅ ÐÏÌØÚÏ×ÁÔØÓÑ ÜÔÉÍ äHë. ëÁË ÖÅ Åݣ?
. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÷ÉÇ×ÁÍ ÉÚ ÓÌÏÎÏ×ÏÊ ËÏÓÔÉ
05 Jul 06 , 00:27 Anatoly Mashanov ÐÉÓÁÌ Ë Dmitry Orlov:
ON>>> ïÞÅÎØ ÈÏÞÅÔÓÑ ÕÚÎÁÔØ, ËÁË ÎÁÉÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÏ × ó ÒÅÁÌÉÚÏ×ÁÔØ ON>>> subj. ðÒÏÓÔÅÊÛÉÊ ÐÒÉÅÍ ÞÅÒÅÚ ÏÐÅÒÁÔÏÒ switch ÍÎÅ ÉÚ×ÅÓÔÅÎ, ÎÏ ON>>> ×ÅÄØ ÏÎ, ÐÏÈÏÖÅ, ÒÁÂÏÔÁÅÔ ÐÅÒÅÂÏÒÏÍ ×ÓÅÈ case-Ï×.
DO>> ïÔËÒÏÊÔÅ ÄÌÑ ÓÅÂÑ ÏÐÅÒÁÔÏÒ break
AM> ðÒÉÞÅÍ ÚÄÅÓØ break? break ÎÁ ÕÒÏ×ÎÅ ÍÁÛÉÎÎÏÇÏ ÑÚÙËÁ ÚÁÍÅÎÑÅÔÓÑ ÎÁ AM> ÅÄÉÎÓÔ×ÅÎÎÙÊ ÏÐÅÒÁÔÏÒ ÐÅÒÅÈÏÄÁ. á ÏÐÅÒÁÔÏÒ switch × ÏÂÝÅÍ ÓÌÕÞÁÅ AM> ÚÁÍÅÎÑÅÔÓÑ ÎÁ ÃÅÐÏÞËÕ ÕÓÌÏ×ÎÙÈ ÏÐÅÒÁÔÏÒÏ× ÐÅÒÅÈÏÄÁ ÐÏ ÏÄÎÏÍÕ ÎÁ AM> ÕÓÌÏ×ÉÅ. éÎÁÞÅ ÇÏ×ÏÒÑ, ÎÁ ËÁÖÄÙÊ case N ÍÙ ÐÏÌÕÞÁÅÍ movf state,w; AM> xorlw N; btfsc status,z; bra next_case (üÔÏ Ñ ÄÌÑ ÐÉËÁ ÐÉÛÕ - ÍÏÖÎÏ AM> ÂÙÌÏ ÂÙ ÐÏÓÔÁ×ÉÔØ É ÌÀÂÕÀ ÄÒÕÇÕÀ ÍÁÛÉÎÕ) - É ÔÁËÉÈ ÓÒÁ×ÎÅÎÉÊ ÍÎÏÇÏ!
ðÏÉÓË - ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÌÉÎÅÊÎÙÊ. äÁÖÅ ÂÅÚ ÉÎÓÔÒÕËÃÉÉ ÔÁÂÌÉÞÎÏÇÏ ÐÅÒÅÈÏÄÁ ÍÏÖÎÏ ×ÍÅÓÔÏ cmp ax,0 je label_0 cmp ax,1 je label_1 .... ÓÄÅÌÁÔØ ÐÏÉÓË ÐÏÌÏ×ÉÎÎÙÍ ÄÅÌÅÎÉÅÍ Ó o(log(n)) ÓÒÁ×ÎÅÎÉÑÍÉ ×ÍÅÓÔÏ n.. ó Õ×ÁÖÅÎÉÅÍ, HÉËÉÔÁ. icq:240059686, lj-user:nicka_startcev ... ÷ÉÇ×ÁÍ ÉÚ ÓÌÏÎÏ×ÏÊ ËÏÓÔÉ
Hi Olga!
04 Jul 06 18:48, Olga Nonova wrote to Slav Matveev:ON> ðÒÏÂÌÅÍÁ × ÄÒÕÇÏÍ. ÷ ó++ ÎÏÒÍÁÌØÎÏ, ÎÏ ÎÅÜÆÆÅËÔÉ×ÎÏ ÄÌÑ ÅÍÂÅÄÎÕÔÙÈ ON> ÒÁÂÏÔÁÅÔ ÔÁËÁÑ ËÏÎÓÔÒÕËÃÉÑ ÐÅÒÅËÌÀÞÁÔÅÌÑ:
ON> switch (SomeChar) { ON> case 'A': Do_A(); break; ON> case 'B': Do_B(); break; ON> default: DÏ_Default(); break; ON> }
ON> äÏÐÕÓÔÉÍÁ × ó (ÂÅÚ ÐÌÀÓÏ×) ÔÁËÁÑ ËÏÎÓÔÒÕËÃÉÑ ÉÚ ÚÎÁÞÅÎÉÊ case-Ï×? é ON> ÞÔÏ ËÏÍÐÉÌØÎÅÔ ËÏÍÐÉÌÑÔÏÒ- ÔÏÖÅ ÏÞÅÎØ ÉÎÔÅÒÅÓÎÏ.
ÓÕÄÁÒÙÎÑ! ÎÁmovb SomeChar, %al movsbl %al,%eax movl %eax, -4(%ebp) cmpl $65, -4(%ebp) je .L3 cmpl $66, -4(%ebp) je .L4 jmp .L2 .L3: call Do_A jmp .L5 .L4: call Do_B jmp .L5 .L2: call Do_Default .L5:
÷ ÓÌÕÞÁÅ Ó ÂÏÌØÛÉÍ ËÏÌÉÞÅÓÔ×ÏÍ case'Ï× × ÍÅÎÅÅ ËÒÁÓÉ×ÙÊ ËÏÄ Ó jmp'ÏÍ ÐÏ ÔÁÂÌÉÃÅ. åÓÌÉ ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÔÏÌØËÏ Do_A(), Á ÎÅ { ... } × ÁÓÓÅÍÂÌÅÒÅ ÍÏÖÎÏ ÂÙÌÏ ÂÙ ÏÂÏÊÔÉÓØ call'ÏÍ ÐÏ ÔÁÂÌÉÃÅ. ÎÏ ÎÉËÔÏ ÎÅ ÍÅÛÁÅÔ ×ÍÅÓÔÏ ÔÁËÏÇÏ swtich'Á ÓÄÅÌÁÔØ ÍÁÓÓÉ× ÕËÁÚÁÔÅÌÅÊ ÎÁ ÆÕÎËÃÉÉ É ×ÙÚÙ×ÁÔØ ÆÕÎËÃÉÀ ÐÏ ÉÎÄÅËÓÕ SomeChar-'A'.ps. ÕËÁÚÁÎÎÙÊ ËÏÄ ÓÇÅÎÅÒÉÒÏ×ÁÎ gcc version 4.0.0 20050519 (Red Hat 4.0.0-8)
Slav.
Hello, Igor! You wrote to Olga Nonova on Tue, 04 Jul 2006 00:21:58 +0400:
IU> ñ ÚÎÁÀ ÔÏÌØËÏ Ä×Á ÓÐÏÓÏÂÁ. ÷ÔÏÒÏÊ ÜÔÏ ÍÁÓÓÉ× ÓÓÙÌÏË ÎÁ ÆÕÎËÃÉÉ. ôÁËÖÅ IU> ÈÏÔÅÌÏÓØ ÂÙ ÕÚÎÁÔØ ÅÝÅ ÓÐÏÓÏÂÙ. GCC ÐÏÚ×ÏÌÑÅÔ ÄÅÌÁÔØ ÕËÁÚÁÔÅÌÉ ÎÁ ÍÅÔËÉ, É ÄÅÌÁÔØ goto ÎÁ ÜÔÉ ÕËÁÚÁÔÅÌÉ. ôÏ ÅÓÔØ, ÍÏÖÎÏ ÓÄÅÌÁÔØ ÍÁÓÓÉ× ÓÓÙÌÏË ÎÁ ÍÅÔËÉ. ðÒÉÍÅÒÎÏ ÔÁË:
void *states[] = { &&a, &&b, &&c }; for(;;) { goto states[i]; ... a: do_state_1(); ... continue; b: do_state_2(); ... continue; c: do_state_3(); ... continue; }
÷ÐÒÏÞÅÍ, ÏÎ ÓÁÍ ÕÍÅÅÔ ÒÁÓËÒÙ×ÁÔØ switch × ÔÁËÏÊ ÍÁÓÓÉ×, ÓÏÏÔ×ÅÔÓÔ×ÅÎÎÏ ÎÅ ÎÁÄÏ ÐÏÌØÚÏ×ÁÔØÓÑ ÎÅÓÔÁÎÄÁÒÔÎÙÍÉ ÒÁÓÛÉÒÅÎÉÑÍÉ C.With best regards, Serg.
Здравствуйте, Уважаемый Slav!
Wed Jul 05 2006 12:48, Slav Matveev wrote to Olga Nonova:
ON>> switch (SomeChar) { ON>> case 'A': Do_A(); break; ON>> case 'B': Do_B(); break; ON>> default: Dо_Default(); break; ON>> }
ON>> Допустима в С (без плюсов) такая конструкция из значений case-ов? И ON>> что компильнет компилятор- тоже очень интересно.
SM> сударыня! на
SM> Ваш же детский лепет транслируется в код:
SM> movb SomeChar, %al SM> movsbl %al,%eax SM> movl %eax, -4(%ebp) SM> cmpl $65, -4(%ebp) SM> je .L3 SM> cmpl $66, -4(%ebp) SM> je .L4 SM> jmp .L2 SM> .L3: SM> call Do_A SM> jmp .L5 SM> .L4: SM> call Do_B SM> jmp .L5 SM> .L2: SM> call Do_Default SM> .L5:
Иными словами, видим полный перебор case-ов. Что и требовалось доказать.
SM> В случае с большим количеством case'ов в менее красивый код SM> с jmp'ом по таблице.
Да-да, речь идет именно о количестве case-ов в районе десятка. И как же тогда получить "красивый код" с таблицей jmp-ов, если выражение при switch не дает, как я Вам представила на примере, регулярных значений из ряда 0,1,2...? Hикак этого у Вас не получится, а по-прежнему будет тухлый перебор всех подряд.
Если действительно только Do_A(), а не SM> { ... } в ассемблере можно было бы обойтись call'ом по таблице. SM> но никто не мешает вместо такого swtich'а сделать массив SM> указателей на функции и вызывать функцию по индексу SomeChar-'A'.
Выношу на Ваш суд мое решение State_Machine, максимально приближенное к оптимальному ассемблерному решению ветвления по указателям. Обращаю особое внимание- мой вариант не требует ни целочисленных индексов, ни таблиц jmp-ов. Ветвление производится максимально быстро и с фиксированной задержкой.
//Вот три макроса для построения любой State_Machine.
#define StateMachine(MyName) void(*MyName)() #define ExecStateOf(StateMachine) (*StateMachine)() #define SetState(StateMachine,NewState) StateMachine=NewState;
//Среди переменных задачи декларируете указатель
StateMachine(SM);
//И пишете действия в состояниях в виде функций, например, их три штуки void State3() {/*DoSomthing3*/;} void State2() {/*DoSomthing2*/;} void State1() {/*DoSomthing1*/;}
//Затем в исполняемых кодах инициализируете конечный автомат SetState(SM,State1); // и приступаете к циклическим вызовам его действий ExecStateOf(SM); //Внутри этих действий Вам не возбраняется переключать состояния SetState(SM,StateN);
У меня, к сожалению, не получается получить ассемблерный текст watcom-овского компилятора. Может Вы попробуете оценить эффективность такого решения? Hиже полный исходный текст консольного приложения для C++. Сколько в нем занимает выполнение непосредственно ExecStateOf(SM)? Была бы чрезвычайно благодарна.
Всего Вам Хорошего Ольга
#include <iostream>
#include <stdlib.h>
#define StateMachine(MyName) void(*MyName)() #define ExecStateOf(StateMachine) (*StateMachine)() #define SetState(StateMachine,NewState) StateMachine=NewState;
using namespace std;
StateMachine(SM);
void State3() {cout << "3" << endl;} void State2() {cout << "2" << endl; SetState(SM,State3);} void State1() {cout << "1" << endl; SetState(SM,State2);}
int main(int argc, char *argv[]) { SetState(SM,State1); ExecStateOf(SM); ExecStateOf(SM); ExecStateOf(SM);
system("PAUSE"); return 0; }
С чего бы это? Строковые константы представимы как целые с соответствующим ASCII кодом...
Не полный, а до первого совпадения. Что это доказывает -- я не знаю. Но умаю, что ничего.
Компилятр в отличии от вас не дурак и понимает, что в случае небольшого числа вариантов таблица -- неоптимальный вариант.
Думаешь, если Писать В дРеБезЖащёМ рГисТРе -- оно лучше заработает? Вот что хуже -- точно. Я даже скажу почэему -- макрос не отличить от функции.
Поная ерунда. В Keil для x51 замучаешься ручками (придётся тки скрипт написать) линкерный файл править, догадайся для чего... Плс я уже писал
-- числовой номер он важен и первичен. А это -- лишь мето д оптимизации.
Обязательно в дребезжащем регистре. А то не заработает! И ещё незабудьте озаботиться вопросом области видимости переменных вашего автомата.
При этом он уже выполняет переход из /неизвестного состояния/ в первое. Ключевое слово -- неизвестного.
^^^^^^^^^^
Вас так беспокоил десяток-другой тактов на switch-case?
Это не C++, это -- херня.
Здравствуйте, Уважаемый Kirill!
Wed Jul 05 2006 21:36, Kirill Frolov wrote to Olga Nonova:
KF> Это не C++, это -- херня.
Херня, оно может быть и херня. Hо, ведь прекрасно работает! Очень быстро и с фиксированным временем на любое ветвление. Что кроет любые Ваши обсирания вокруг да около.
Всего Вам Хорошего Ольга
Здравствуйте, Уважаемый Ruslan!
Wed Jul 05 2006 08:20, Ruslan Mohniuc wrote to Olga Nonova:
RM> Комментарии, надеюсь, не нужны?
В данном случае не нужны. Попробуйте теперь: case 'A':.... case 'ы':.... case '1':.... case 'Ж':....
Коментарии нужны?
Всего Вам Хорошего Ольга
Hello, Olga! You wrote to Ruslan Mohniuc on Wed, 5 Jul 2006 21:22:49 +0000 (UTC):
ON> úÄÒÁ×ÓÔ×ÕÊÔÅ, õ×ÁÖÁÅÍÙÊ Ruslan!
ON> Wed Jul 05 2006 08:20, Ruslan Mohniuc wrote to Olga Nonova:
RM>> ëÏÍÍÅÎÔÁÒÉÉ, ÎÁÄÅÀÓØ, ÎÅ ÎÕÖÎÙ?
ON> ÷ ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÅ ÎÕÖÎÙ. ðÏÐÒÏÂÕÊÔÅ ÔÅÐÅÒØ: ON> case 'A':.... ON> case 'Ù':.... ON> case '1':.... ON> case 'ö':....
ON> ëÏÍÅÎÔÁÒÉÉ ÎÕÖÎÙ?
äÁ. ËÏÍÍÕÎÔÁÒÉÉ ÎÕÖÎÙ. öÅÌÁÔÅÌØÎÏ × ×ÉÄÅ ÁÎÁÌÉÚÁ äîë ÔÏÇÏ ÐÒÏÇÒÁÍÍÉÓÔÁ. ËÏÔÏÒÙÊ ÓÄÅÌÁÌ ÔÁËÉÅ ÓÏÓÔÏÑÎÉÑ × ÓÔÅÊÔ-ÍÁÛÉÎÅ. ÷ ËÒÁÊÎÅÍ ÓÌÕÞÁÊ - ÅÇÏ IQ*100, ÎÅ ÌÀÂÌÀ ÄÒÏÂÎÙÅ ÃÉÆÒÙ Ó ÎÕÌÅ×ÙÍ ÃÅÌÙÍ.With best regards, Alexandr Torres.
[ öÁÍÓÔ×Õ ÂÏÊ ! ]2:461/28, E-mail: snipped-for-privacy@yahoo.com
Hi Kirill!
05 Jul 06 20:34, Kirill Frolov wrote to Slav Matveev:
KF> ó ÞÅÇÏ ÂÙ ÜÔÏ? óÔÒÏËÏ×ÙÅ ËÏÎÓÔÁÎÔÙ ÐÒÅÄÓÔÁ×ÉÍÙ ËÁË ÃÅÌÙÅ Ó KF> ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ ASCII ËÏÄÏÍ...
Ñ ÈÏÔÅÌ ÓËÁÚÁÔØ ÞÔÏ ÅÓÌÉ ËÏÎÓÔÁÎÔÁ reduce to an integer ÔÏ ×ÓÅ ÎÏÒÍÁÌØÎÏ, Á ÅÓÌÉ does not reduce - ÎÁÄÏ ÞÔÏ-ÔÏ ÐÒÅÄÐÒÉÎÉÍÁÔØ.Slav.
Здравствуйте, Уважаемый Alexandr!
Thu Jul 06 2006 01:57, Alexandr Torres wrote to Olga Nonova:
ON>> case 'A':.... ON>> case 'ы':.... ON>> case '1':.... ON>> case 'Ж':....
ON>> Коментарии нужны?
AT> Да. коммунтарии нужны.
Извольте. Кто программировал ПЛИСы знают, что состояния State_Machine часто задают принудительно в виде управляющих кодовых последовательностей. Эти последовательности выбирают как удобно, не обязательно в виде целых чисел, бегущей "1" или кода Грея. Для ваших любимых ПИКов- это может быть значение в регистре порта вывода, на котором хочется получить желаемую лично Вам последовательность кодов. Таким образом, выражением при switch будет именно этот порт, и вполне может оказаться необходимым распознавать на нем значения из моего примера: 'A','ы','1','Ж'.
Всего Вам Хорошего Ольга
PS. ДHК не беспокоит?
X-Virus-Scanned: amavisd-new at bezeqint.net
Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Alexandr Torres on Thu, 6 Jul
2006 07:10:54 +0000 (UTC):ON>>> case 'A':.... ON>>> case 'Ù':.... ON>>> case '1':.... ON>>> case 'ö':....
ON>>> ëÏÍÅÎÔÁÒÉÉ ÎÕÖÎÙ?
AT>> äÁ. ËÏÍÍÕÎÔÁÒÉÉ ÎÕÖÎÙ.
ON> éÚ×ÏÌØÔÅ. ëÔÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÌ ðìéóÙ ÚÎÁÀÔ, ÞÔÏ ÓÏÓÔÏÑÎÉÑ ON> State_Machine ÞÁÓÔÏ ÚÁÄÁÀÔ ÐÒÉÎÕÄÉÔÅÌØÎÏ × ×ÉÄÅ ÕÐÒÁ×ÌÑÀÝÉÈ ËÏÄÏ×ÙÈ
÷ ÓÌÕÞÁÅ ÕÐÒÁ×ÌÑÀÝÉÈ ÐÒÏÇÒÁÍÍ - ÎÅ ÞÁÓÔÏ.ON> PS. äHë ÎÅ ÂÅÓÐÏËÏÉÔ?
âÅÓÐÏËÏÑÔ ÏÛÉÂËÉ × äîë ×ÁÛÅÇÏ ËÏÌÌÅËÔÉ×Á.dima
Hello, Olga! You wrote to Alexandr Torres on Thu, 6 Jul 2006 07:10:54 +0000 (UTC):
ON> úÄÒÁ×ÓÔ×ÕÊÔÅ, õ×ÁÖÁÅÍÙÊ Alexandr!
ON> Thu Jul 06 2006 01:57, Alexandr Torres wrote to Olga Nonova:
ON>>> case 'A':.... ON>>> case 'Ù':.... ON>>> case '1':.... ON>>> case 'ö':....
ON>>> ëÏÍÅÎÔÁÒÉÉ ÎÕÖÎÙ?
AT>> äÁ. ËÏÍÍÕÎÔÁÒÉÉ ÎÕÖÎÙ.
ON> éÚ×ÏÌØÔÅ. ëÔÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÌ ðìéóÙ ÚÎÁÀÔ, ÞÔÏ ÓÏÓÔÏÑÎÉÑ State_Machine
íÙ ÎÅ ÏÂÓÕÖÄÁÅÍ ðìéóÙ É AHDL/VHDL, ÍÙ ÏÂÓÕÖÄÅÍ ÍÉËÒÏËÏÎÔÒÏÌÌÅÒÙ É C/Asm.ON> ÞÁÓÔÏ ÚÁÄÁÀÔ ÐÒÉÎÕÄÉÔÅÌØÎÏ × ×ÉÄÅ ÕÐÒÁ×ÌÑÀÝÉÈ ËÏÄÏ×ÙÈ ON> ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÅÊ. üÔÉ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ×ÙÂÉÒÁÀÔ ËÁË ÕÄÏÂÎÏ, ÎÅ ON> ÏÂÑÚÁÔÅÌØÎÏ × ×ÉÄÅ ÃÅÌÙÈ ÞÉÓÅÌ, ÂÅÇÕÝÅÊ "1" ÉÌÉ ËÏÄÁ çÒÅÑ. äÌÑ ×ÁÛÉÈ ON> ÌÀÂÉÍÙÈ ðéëÏ×- ÜÔÏ ÍÏÖÅÔ ÂÙÔØ ÚÎÁÞÅÎÉÅ × ÒÅÇÉÓÔÒÅ ÐÏÒÔÁ ×Ù×ÏÄÁ, ÎÁ ON> ËÏÔÏÒÏÍ ÈÏÞÅÔÓÑ ÐÏÌÕÞÉÔØ ÖÅÌÁÅÍÕÀ ÌÉÞÎÏ ÷ÁÍ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ ËÏÄÏ×. ON> ôÁËÉÍ ÏÂÒÁÚÏÍ, ×ÙÒÁÖÅÎÉÅÍ ÐÒÉ switch ÂÕÄÅÔ ÉÍÅÎÎÏ ÜÔÏÔ ÐÏÒÔ, É ×ÐÏÌÎÅ ON> ÍÏÖÅÔ ÏËÁÚÁÔØÓÑ ÎÅÏÂÈÏÄÉÍÙÍ ÒÁÓÐÏÚÎÁ×ÁÔØ ÎÁ ÎÅÍ ÚÎÁÞÅÎÉÑ ÉÚ ÍÏÅÇÏ ON> ÐÒÉÍÅÒÁ: 'A','Ù','1','ö'.
ðÒÏÞÉÔÁÊÔÅ ÎÁËÏÎÅà ×ÓÅÍ ËÏÌÌÅËÔÉ×ÏÍ ÁÆÆÔÏÒÏ× ËÎÉÖËÕ ÐÏ óÉ, Á ÚÁÏÄÎÏ ÐÏÕÞÉÔÅÌØ ÐÉÓÁÔØ ÜÈÏÔÁÖÎÙÊ ÓÏÆÔ. üÔÏ ×ÁÍ ÐÏÍÏÖÅ × ÄÁÌØÎÅÊÛÅÍ ÄÁÁÔØ ×ÁÛÉ "ÂÅÓÃÅÎÎÙÅ ÒÅËÏÍÅÎÄÁÃÉÉ" (ÁËÁ "ÔÒÅÓËÏÔÎÀ") × ÜÈÁÈ.ON> ÷ÓÅÇÏ ÷ÁÍ èÏÒÏÛÅÇÏ ON> ïÌØÇÁ
ON> PS. äHë ÎÅ ÂÅÓÐÏËÏÉÔ?
With best regards, Alexandr Torres. E-mail: snipped-for-privacy@yahoo.com [ öÁÍÓÔ×Õ ÂÏÊ !]
Hi Olga!
06 Jul 06 01:22, Olga Nonova wrote to Ruslan Mohniuc:ON> ÷ ÄÁÎÎÏÍ ÓÌÕÞÁÅ ÎÅ ÎÕÖÎÙ. ðÏÐÒÏÂÕÊÔÅ ÔÅÐÅÒØ: ON> case 'A':.... ON> case 'Ù':.... ON> case '1':.... ON> case 'ö':....
ON> ëÏÍÅÎÔÁÒÉÉ ÎÕÖÎÙ?
ÎÕÖÎÙ. Ñ ÐÒÏÂÏ×ÁÌ. Ä×Á ÒÁÚÁ. Ó ÞÉÓÌÁÍÉ É Ó ÌÉÔÅÒÁÍÉ (ÞÔÏ, ÓÏÂÓÔ×ÅÎÎÏ ÔÏ ÖÅ ÓÁÍÏÅ, ÔÏÌØËÏ × ÐÒÏÆÉÌØ). Ä×Á ÓÒÁ×ÎÅÎÉÑ: ÎÁ ÍÉÎÉÍÁÌØÎÕÀ ËÏÎÓÔÁÎÔÕ É ÎÁ ÍÁËÓÉÍÁÌØÎÕÀ, ÄÁÌØÛÅ ÐÅÒÅÈÏÄ ÐÏ ÔÁÂÌÉÃÅ. ôÁÂÌÉÃÁ, ÐÒÁ×ÄÁ, ÐÏÌÕÞÁÅÔÓÑ ÄÀÖÅ "ÐÒÏÒÅÖÅÎÎÁÑ". á ×ÁÛÁ ÓÈÅÍÁ ÎÅ ÏÞÅÎØ ÈÏÒÏÛÏ ÂÕÄÅÔ ÒÁÂÏÔÁÔØ ËÏÇÄÁ ÓÏÓÔÏÑÎÉÑ ÎÁÄÏ ÂÕÄÅÔ ËÕÄÁ-ÌÉÂÏ ÐÅÒÅÄÁ×ÁÔØ ÉÌÉ ÐÒÉÎÉÍÁÔØ, ÎÁÐÒÉÍÅÒ. áÄÒÅÓ ÆÕÎËÃÉÉ × ÜÔÏÍ ÓÌÕÞÁÅ ÎÅ ÓÁÍÁÑ ÌÕÞÛÁÑ ËÏÎÓÔÁÎÔÁ, ÐÏ-ÍÏÅÍÕ.Slav.
Have something to add? Share your thoughts — no account required.
Ask the community — no account required