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

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Overlay

Сообщений 1 страница 8 из 8

1

Подскажите новичку

Dim Data_l As Long
Dim Data_b(4) As Byte At Data_l Overlay

Data_l=&H_AC530000 

почему в массиве Data_b все наоборот? 1- 00; 2-00; 3-53; 4-AC

0

2

Ничего удивительного, так распределяются данные в памяти.

0

3

а как развернуть?

0

4

Null написал(а):

а как развернуть?

Примитивно так, через промежуточный массив:
for i=1 to 4
temp(i)=Data_b(i)
next i
Data_b(1)=temp(4)
Data_b(2)=temp(3)
Data_b(3)=temp(2)
Data_b(4)=temp(1)

А можно командой swap. Почитайте хелп к васику.

Отредактировано Tankor (2016-09-19 20:48:23)

0

5

А что нельзя забирать данные из массива в обратном порядке?  :D

0

6

RDW написал(а):

А что нельзя забирать данные из массива в обратном порядке?

можно. Написал, чтоб понял Null.

0

7

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

Об этом всё написано в хелпе: http://avrhelp.mcselec.com/index.html?dim.htm

Можно вообще сделать так:

Код:
Dim Data_l As Long
Dim Data_b_1 As Byte At Data_l + 3 Overlay
Dim Data_b_2 As Byte At Data_l + 2 Overlay
Dim Data_b_3 As Byte At Data_l + 1 Overlay
Dim Data_b_4 As Byte At Data_l + 0 Overlay

Всё от дальнейшей реализации зависит...

Отредактировано RDW (2016-09-20 12:56:54)

0

8

да так и сделал

В обратном можно да не удобно..

0