Перейти к содержанию
    

SDCC и __sbit

Всем привет!

 

Помогите понять как работает __sbit в SDCC.

К примеру код из Keil:

sfr FSR              = 0xF8;
/*  FSR  */
sbit  MCDIS        = FSR^7;
sbit  STP          = FSR^6;
sbit  WEN          = FSR^5;
sbit  RDYN         = FSR^4;
sbit  INFEN        = FSR^3;
sbit  RDIS         = FSR^2;
sbit  RDEND        = FSR^1;
sbit  WPEN         = FSR^0;

Как я понимаю в SDCC я должен описать что-то типа:

__sfr _-at 0xF8 FSR;
__sbit __at 0xF8 WPEN;
__sbit __at 0xF9 RDEND;
__sbit __at 0xFA RDIS;

и так далее. правильно?

А тогда как быть, к примеру, с регистром sfr FPCR = 0xF9; ? Ведь к примеру sbit NUPP = FPCR^0; будет всё тем же __sbit __at 0xF9 NUPP;, что не отличается от __sbit __at 0xF9 RDEND;?

Не понимаю ничего :crying:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ищите таблицу Special Function Register (SFR) Memory Map на свой контроллер и подставляйте нужные адресса, при использовании sbit обращение будет идти с битовой области памяти bdata

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А тогда как быть, к примеру, с регистром sfr FPCR = 0xF9; ? Ведь к примеру sbit NUPP = FPCR^0; будет всё тем же __sbit __at 0xF9 NUPP;, что не отличается от __sbit __at 0xF9 RDEND;?

Не понимаю ничего :crying:

 

Обращение к битам есть только у регистров, чьи аддресса кратны 8:

0xF0, 0xF8 ...

0xF9 не умеет обращатся к битам

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...