реклама на сайте
подробности

 
 
> Keil Си DPTR
Fape
сообщение Jun 19 2008, 08:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-07-05
Пользователь №: 6 451



Подскажите пожалуста как определить указатель что бы он указывал на определенный байт в XRAM
вобщем как на Си написать аналог команды MOVX @DPTR, A smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 6)
Палыч
сообщение Jun 19 2008, 08:47
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Вы желаете заносить/читать определенный байт внешнего ОЗУ? Тогда это можно сделать так:
unsigned char xdata Ch _at_ 0x8000; /* Переменная Ch - располагается во внешнем ОЗУ по адресу 8000h */
Ch= 123; /* Занести значение */
X= Ch; /* Использовать (читать) значение */

P.S. Можно и через указатель:
unsigned char xdata *pCh= 0x8000;
*pCh= 123;
X= *pCh;
Go to the top of the page
 
+Quote Post
редактор
сообщение Jun 19 2008, 08:48
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



Вообщето все в доках есть.Но уж если лень искать.
Вариант 1
объявить переменную в памяти XDATA с привязкой к адресу
XDATA char i _at_ 0x0A;
...
i = 1;
Вариант 2
объявить указатель на XDATA
char xdata *ptr;
ptr = 0x0A;
*ptr = 1;


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
Fape
сообщение Jun 19 2008, 08:58
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-07-05
Пользователь №: 6 451



нет мне нужен именно указатель что бы можно было заполнаять памят последовательно

вот скажем при таком обявлении

unsigned char * xdata p;

p = 0; // указатель на нулевую ячейку XRAM ?

*p = Data; // присвоение ячейки xram значения ?

p++; // укзатель на следущую ячейку ?
Go to the top of the page
 
+Quote Post
Палыч
сообщение Jun 19 2008, 08:59
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Fape @ Jun 19 2008, 11:58) *
нет мне нужен именно указатель что бы можно было заполнаять памят последовательно ...вот скажем при таком обявлении
Да. Ой! Нет! Вот так:
unsigned char xdata *p;
Go to the top of the page
 
+Quote Post
Fape
сообщение Jun 19 2008, 09:06
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 1-07-05
Пользователь №: 6 451



ага smile.gif спасибо за консультацию
Go to the top of the page
 
+Quote Post
toweroff
сообщение Jun 19 2008, 12:01
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Можно копнуть в сторону 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];


}
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 09:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01383 секунд с 7
ELECTRONIX ©2004-2016