Работа с массивами данных
|
|
Влад1111 |
Дата: Чт, 23.07.2009, 21:25 | Сообщение # 1 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 12.06.2008
Статус:
Offline
|
Здравствуйте, форумчане. Помогите разобраться со следующей задачей. Три модуля соединены с контроллером 8-ми битной шиной данных D0-D7. Выбор модуля осуществляется с помощью шины адреса A0-A1. Считанные данные записываются в массив Modul var Byte[3]. Дальнейший ход программы зависит от состояния конкретных битов в байтах MODUL[0], MODUL[1], MODUL[2]. Пусть это будут бит 0 в байте MODUL[0], бит 1 в байте MODUL[1] и бит 2 в байте MODUL[2]. При попытке присвоить этим битам имя (Symbol YV1 = Modul[0].0) MicroCode Studio выдает сообщение о синтаксической ошибке. В Help ничего об этом не написано. Есть ли способ обратиться к этим байтам напрямую?
|
|
|
|
ADMIN |
Дата: Пт, 24.07.2009, 07:33 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Вообще компилятор в данном случае сообщает, что такой стиль синтаксиса при работе с массивами не поддерживается.
|
|
|
|
Dmitry |
Дата: Пт, 24.07.2009, 17:07 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
О! меня это тоже напрягает периодически. А в Протоне можно напрямую работать с битами элементов байтового массива?
|
|
|
|
Влад1111 |
Дата: Пт, 24.07.2009, 21:19 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 12.06.2008
Статус:
Offline
|
Пока нашел такой вариант: в описании переменных записываем Modul var Byte[3] SIMBOL A=Modul[0] SIMBOL B=Modul[1] SIMBOL C=Modul[2] а в программе уже обращаемся к битам YV1=A.0 MicroCode Studio не ругается
|
|
|
|
Dmitry |
Дата: Сб, 25.07.2009, 00:41 | Сообщение # 5 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Quote (Влад1111) Пока нашел такой вариант: Ну тебе в конкретном примере может и подойдет, а так вообще вариант не ахти. Весь цимус массива, что в скобки можно переменную ставить и обращаться к нужному элементу массива непрямым способом. Пока пользую только вариант с промежуточной переменной, что-то типа: FOR i = 0 TO 2 tmp = Modul[i] YV1 = tmp.0 NEXT i
|
|
|
|
Влад1111 |
Дата: Сб, 25.07.2009, 20:55 | Сообщение # 6 |
Группа:
Пользователи
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 12.06.2008
Статус:
Offline
|
Quote (Dmitry) Пока пользую только вариант с промежуточной переменной Такой вариант в моем случае обрастет кучей команд для выделения битов из каждого нужного байта массива. Ведь приходится анализировать до семи битов из разных байтов. Ну, а цимус действительно теряется, и как его сохранить - вопрос.
|
|
|
|
MasterPic |
Дата: Вт, 28.07.2009, 09:52 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
186
Замечания:
±
На сайте с 22.11.2008
Статус:
Offline
|
Quote (Dmitry) Ну тебе в конкретном примере может и подойдет, а так вообще вариант не ахти. Весь цимус массива, что в скобки можно переменную ставить и обращаться к нужному элементу массива непрямым способом. Пока пользую только вариант с промежуточной переменной, что-то типа: FOR i = 0 TO 2 tmp = Modul[i] YV1 = tmp.0 NEXT i Ну а почему теряется? К переменной массива также можно и обращаться, массив то ни куда не теряется.
|
|
|
|
Dmitry |
Дата: Вт, 28.07.2009, 17:04 | Сообщение # 8 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
С промежуточной переменной не теряется, но появляется сама промежуточная переменная и команда ее присвоения, что при большом количестве обращений к разным битам байтового массива действительно задрачивает. Ну это я после дельфи такой вредный
|
|
|
|
Yrok |
Дата: Ср, 29.07.2009, 10:26 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
112
Замечания:
±
На сайте с 27.09.2007
Статус:
Offline
|
Я так понял MicroCode Studio не может создавать указатель на конкретный бит элемента массива?
Сообщение отредактировал
Yrok - Ср, 29.07.2009, 11:51
|
|
|
|
Dmitry |
Дата: Ср, 29.07.2009, 19:35 | Сообщение # 10 |
Группа:
Пользователи
Ранг:
Могу и подсказать
Сообщений:
157
Замечания:
±
На сайте с 12.05.2009
Статус:
Offline
|
Угу. Похоже, разработчикам это показалось ненужным.
|
|
|
|