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

 
 
 
Reply to this topicStart new topic
> адрес порта в IAR
srm
сообщение Jan 8 2010, 16:58
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



мне нужно хранить в структуре данных адрес порта. в WinAvr это можно сделать так:

Код
struct some_struct
{
uint8 port;
};

some_struct x;

x.port = _SFR_IO_ADDR(PORTC);

// ...

_SFR_IO8(x.port) = 0xFF;


в IAR таких макросов нет. что можно сделать? пробовал запоминать адрес памяти, типа
Код
uint8 *p = (uint8*)&PORTC;

нужно типы преобразовывать и как-то некошерно sad.gif((
есть ли какие-то стандартные макросы для подобных вещей?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 9 2010, 11:57
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Есть. Делается всё одинаково для всех компиляторов.
Почитайте это.
И ещё может Вам пригодится... Поищите в поисковиках "макросы имени Аскольда Волкова"
Код
typedef struct
{
    volatile unsigned char* get;
    volatile unsigned char* put;
    volatile unsigned char* dir;
} port_t;

port_t porta =
{
    &PINA,
    &PORTA,
    &DDRA
};


*porta.dir = 0xff;
*porta.put = 0xff;

unsigned char value = *porta.get;


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 20:37
Рейтинг@Mail.ru


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