Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
20.10.2008, 12:04
|
#1
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
Память в МК
Подскажите пожалуйста как можно организовать в МК индексный массив данных
типа такого:
...
int count
int Massive[100]
или
var
Massive : array [0..99] of byte;
Count: byte;
чтобы можно было обращатся как:
count = 5
massive[count] = 2
massive[count] = 20 и так далее
где то читал что CBLOCK решает проблему однако с ним не получается создать цикл и обратиться к памяти через динамический индекс.
...
cblock
MAS : 20
endc
...
movlw MAS + count ; вызывает ошибку
...
а задача состоит в том чтобы получить определенное количество байт и работать с ними как с единой таблицей данных.
|
|
|
|
20.10.2008, 14:18
|
#2
|
Частый гость
Регистрация: 04.09.2008
Сообщений: 26
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
по моему это пишется как то вроде такого:
u08 mas[0x200]; //u08 определено как: typedef unsigned char u08;
*mas+count = 0x20; //т.е. обращаемся по адресу а не как к переменной
|
|
|
|
20.10.2008, 16:00
|
#3
|
Гражданин KAZUS.RU
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
|
вот моя конструкция
MyAdr equ 0x22
cblock
mas: 20
endc
...
movlw d'4'
movwf MyAdr
...
MC:
btfss PIR1,RCIF
goto $-1
movf RCREG,0
movwf mas + MyAdr
decfsz MyAdr
goto MC
...
объясните пожалуйста где здесь ошибки.
|
|
|
|
20.10.2008, 17:04
|
#4
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
|
Используй косвенную адресацию через FSR и INDF.
|
|
|
|
20.10.2008, 17:25
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Сообщение от realid
|
Используй косвенную адресацию через FSR и INDF.
|
Кажтся примерно так :
Код:
|
MC:
btfss PIR1,RCIF
goto $-1
movFw MyAdr
addLw mas ;Здесь прибавляем адрес начала массива
movWf FSR
movFw RCREG
movWf INDF
decfsz MyAdr
goto MC |
Удачи!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
AT93C56 Память
|
Pilegrim |
Микроконтроллеры, АЦП, память и т.д |
0 |
04.01.2008 18:49 |
память (внешняя память)
|
satnettv |
Микроконтроллеры, АЦП, память и т.д |
0 |
04.09.2007 15:20 |
Запаралелить память
|
andreiesafov |
Микроконтроллеры, АЦП, память и т.д |
1 |
21.04.2007 08:23 |
Память AT45DB161
|
Tolstopuz |
Микроконтроллеры, АЦП, память и т.д |
5 |
29.01.2007 13:17 |
Память
|
sachem |
Микроконтроллеры, АЦП, память и т.д |
1 |
23.09.2003 11:15 |
Часовой пояс GMT +4, время: 12:19.
|
|