Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 20.10.2008, 12:04   #1
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию Память в МК

Подскажите пожалуйста как можно организовать в МК индексный массив данных

типа такого:
...
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 ; вызывает ошибку
...
а задача состоит в том чтобы получить определенное количество байт и работать с ними как с единой таблицей данных.
Реклама:
worldmasters вне форума  
Непрочитано 20.10.2008, 14:18   #2
Zeroname
Частый гость
 
Регистрация: 04.09.2008
Сообщений: 26
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Zeroname на пути к лучшему
По умолчанию

по моему это пишется как то вроде такого:

u08 mas[0x200]; //u08 определено как: typedef unsigned char u08;
*mas+count = 0x20; //т.е. обращаемся по адресу а не как к переменной
Zeroname вне форума  
Непрочитано 20.10.2008, 16:00   #3
worldmasters
Гражданин KAZUS.RU
 
Регистрация: 21.02.2007
Сообщений: 553
Сказал спасибо: 38
Сказали Спасибо 17 раз(а) в 16 сообщении(ях)
worldmasters на пути к лучшему
По умолчанию

вот моя конструкция
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
...

объясните пожалуйста где здесь ошибки.
worldmasters вне форума  
Непрочитано 20.10.2008, 17:04   #4
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,530
Сказал спасибо: 172
Сказали Спасибо 1,560 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию

Используй косвенную адресацию через FSR и INDF.
realid вне форума  
Непрочитано 20.10.2008, 17:25   #5
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию

Сообщение от realid
Используй косвенную адресацию через FSR и INDF.
Кажтся примерно так :
Код:
MC:
btfss PIR1,RCIF
goto $-1

movFw MyAdr
addLw mas ;Здесь прибавляем адрес начала массива
movWf FSR
movFw RCREG
movWf INDF

decfsz MyAdr
goto MC
Удачи!
Popeye вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
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.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot