Полная версия этой страницы:
Keil Си DPTR
Подскажите пожалуста как определить указатель что бы он указывал на определенный байт в XRAM
вобщем как на Си написать аналог команды MOVX @DPTR, A
Вы желаете заносить/читать определенный байт внешнего ОЗУ? Тогда это можно сделать так:
unsigned char xdata Ch _at_ 0x8000; /* Переменная Ch - располагается во внешнем ОЗУ по адресу 8000h */
Ch= 123; /* Занести значение */
X= Ch; /* Использовать (читать) значение */
P.S. Можно и через указатель:
unsigned char xdata *pCh= 0x8000;
*pCh= 123;
X= *pCh;
редактор
Jun 19 2008, 08:48
Вообщето все в доках есть.Но уж если лень искать.
Вариант 1
объявить переменную в памяти XDATA с привязкой к адресу
XDATA char i _at_ 0x0A;
...
i = 1;
Вариант 2
объявить указатель на XDATA
char xdata *ptr;
ptr = 0x0A;
*ptr = 1;
нет мне нужен именно указатель что бы можно было заполнаять памят последовательно
вот скажем при таком обявлении
unsigned char * xdata p;
p = 0; // указатель на нулевую ячейку XRAM ?
*p = Data; // присвоение ячейки xram значения ?
p++; // укзатель на следущую ячейку ?
Цитата(Fape @ Jun 19 2008, 11:58)

нет мне нужен именно указатель что бы можно было заполнаять памят последовательно ...вот скажем при таком обявлении
Да. Ой! Нет! Вот так:
unsigned char xdata *p;
ага

спасибо за консультацию
toweroff
Jun 19 2008, 12:01
Можно копнуть в сторону absacc.h
Код
#include <absacc.h>
...
void main()
{
unsigned int i;
unsigned char c;
...
XBYTE[0x2F16] = c;
c = XBYTE[0x34FF];
XWORD[0x127D] = i;
i = XWORD[i];
}
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.