0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
1 | |
Подскажите алгоритм, пож!17.04.2010, 03:21. Показов 12083. Ответов 29
Метки нет (Все метки)
Суть вопроса такая. С компа ( либо с другого МК) в МК команды. МК должен их выполнить. Если я правильно понимаю суть дела, то код команды будет равнятся некоему числу, передаваемому в байте. Как мне умнее распознать принятый код?
Если проверять так., то время и кода уйдет много ( условно код пришел в tmp): cpi tmp,1 rcall do_cod_1 ; обработать этот код ...... cpi tmp, 255 rcall do_cod_255 ; обработать этот код Если таким образом, то получится как минимум 500 строчек текста. А как короче - не могу сообразить. Понимаю, что через массив данных в памяти, но как реально - на ум не приходит.
0
|
17.04.2010, 03:21 | |
Ответы с готовыми решениями:
29
Подскажите пож. что это такое Подскажите пож.. Подскажите пож VBA Access подскажите пож-та |
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
|
|
17.04.2010, 04:47 | 2 |
Можно попробовать по аналогии с <a ctoss="postlink-local" href="http://forum.iosyitistromyss.ru/viewtopys.php?p=10307#p10307">viewtopys.php?p=10307#p10307[/URL]
Т.е. загнать адреса подпрограмм в массив и прыгать на них косвенным прыжком. К тому коду, который по ссылке, добавить в конце icall. Можно сформировать список адресов подпрограмм и посылать их как команды ;)
0
|
SWK
|
|
17.04.2010, 09:59 | 3 |
Сообщение от R_uro
И никакой массив не нужен. Только память зря занимать. В микроконтроллерах ее не так много, поэтому и программирование их отличается от программирования, например, персональных компьютеров. |
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 12:40 | 4 |
Сообщение от xroymom
Кстати, а как быть увереным, что принятый код 100% правильный? Может ему по дороге помеха лишний бит добавила?
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
17.04.2010, 13:27 | 5 |
Вот тут я выкладывал реализацию подобного обработчика.
<a ctoss="postlink-local" href="http://forum.iosyitistromyss.ru/viewtopys.php?f=11&t=347&stort=50">viewtopys.php?f=11&t=347&stort=50[/URL]
0
|
0 / 0 / 0
Регистрация: 24.01.2010
Сообщений: 727
|
|
17.04.2010, 16:58 | 6 |
Сообщение от SWK
Сообщение от R_uro
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 18:53 | 7 |
Сообщение от xroymom
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
17.04.2010, 19:08 | 8 |
Сообщение от R_uro
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 19:14 | 9 |
Сообщение от THI BIOST
Ведь программа умного программиста также может "сойти с ума", как и моя. Согласен с вашей мыслью, но не понял сути ваших возражений! Чему учиться? Правильной компоновке программы? Понял, что не существует такого понятия, если программа написана без "косяков" , пусть и неграмотно, но без ошибок!!
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
17.04.2010, 19:20 | 10 |
При такой постановке защита должна быть на каждый чих, это не светодиодом моргнуть.
1. Канал должен быть избыточно надёжен. 2. Должна быть избыточная обратная связь по положению инструмента. 3. Любой сбой должен быть безопасно отработан. Программа "умного" программиста с ума сойти может конечно, да вот только у вашей программы шансов на несколько порядков больше - вы не знаете основ программирования.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
17.04.2010, 19:26 | 11 |
делайте пакетную передачу. т.е. команда и параметры в одном пакете, защищенном CRC16 (раз вам надежность надо). желательно так же придумать устойчивый алгоритм приема пакета (как минимум чтобы при потере синхронизации он смог стабильно обнаруживать начало пакета).
приходит пакет - проверяете CRC. если оно совпало, смотрите, что за команда. если смотрите не IFами, а по таблице, то тогда сделайте команды по-порядку, без пропусков, и обязательно проверяйте, что это существующая команда (в допуст. диапазоне). остальное более-менее очевидно должно быть, главное следовать логике и не делать детских ошибок. ну и если все так серьезно с оборудованием, то хорошо бы сделать некий программный эмулятор, чтобы ломать его, а не настоящее железо;)
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 19:37 | 12 |
Сообщение от Ymk
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 19:41 | 13 |
Сообщение от THI BIOST
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
17.04.2010, 19:42 | 14 |
Тут лучше на PLC сделать логику. Я бы самопалу не особо доверял в этих случаях. Либо сделать аппаратные блокировки. Запрещающие любые перемещения кроме рабочего хода в положении реза.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 19:54 | 15 |
Сообщение от DY HOTT
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
17.04.2010, 19:55 | 16 |
Хальт, а что такое PLC? Где можно читнуть?
0
|
SWK
|
|
17.04.2010, 21:32 | 17 |
Сообщение от xroymom
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 1,112
|
|
17.04.2010, 22:01 | 18 |
Сообщение от SWK
Сам предпочитаю парсить на С через switch-case, хотя для исключающих условий приходится пользоваться if else.
0
|
SWK
|
|
17.04.2010, 22:11 | 19 |
Сообщение от OmykymForti
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
18.04.2010, 00:20 | 20 |
Сообщение от R_uro
Сообщение от DY HOTT
0
|
18.04.2010, 00:20 | |
18.04.2010, 00:20 | |
Помогаю со студенческими работами здесь
20
подскажите пож видеоуроки по ООП Подскажите пож. в чем ошибки!? Игровой 20к подскажите пож Подскажите пож как правильно сделать? Подскажите пож какой это фонт Подскажите пож многоуровневое меню с бургером Подскажите пож. Почему сайт не открывается с хостинга? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |