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

 
 
 
Reply to this topicStart new topic
> SDCC и __sbit, помогите понять синтаксис и принцип
Spider
сообщение May 16 2015, 07:00
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 427
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Всем привет!

Помогите понять как работает __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.gif
Go to the top of the page
 
+Quote Post
Kolia
сообщение Jul 15 2015, 09:37
Сообщение #2


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

Группа: Свой
Сообщений: 183
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



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

Go to the top of the page
 
+Quote Post
A. Fig Lee
сообщение Jul 15 2015, 12:05
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Alexey Belyaev @ May 16 2015, 03:00) *
А тогда как быть, к примеру, с регистром sfr FPCR = 0xF9; ? Ведь к примеру sbit NUPP = FPCR^0; будет всё тем же __sbit __at 0xF9 NUPP;, что не отличается от __sbit __at 0xF9 RDEND;?
Не понимаю ничего crying.gif


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


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 29th April 2017 - 11:26
Рейтинг@Mail.ru


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