Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Все тот же порт Centronics'а 
:(
    Опции темы
Кепка
Дата 9.5.2002, 14:25 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Я все о том же порте Centronics. Конечно же спасибо за совет Chingachguk'у, но, видимо, он не так меня понял (или я некорректно задал вопрос). Постараюсь осветить проблему пошире: насчет функций inport и inportb. В С они имеют такие прототипы:
   int intport (int );
   unsigned char inportb (int );
Что из этого следует? Из этого следует, что эти функции возвращают слово и байт состояния порта, которого ты указываешь в скобках. Допустим, что на порт состояния Centronics (379) пришла комбинация бит: 11111111. Что в десятичном эквиваленте означает 255. Эти функции прочтя состояние порта возвратят эту комбинацию в какую-то переменную. А мне же нужно прочитать отдельно БИТЫ этого порта, т.е. чтоб в переменной находился либо 0, либо 1, но никак не 255 или подобное этому. Я понимаю, что выходное значение этих функций можно разложить на биты, но это долго, неэкономично. Можно ли как-нибудь (с помощью ассемблера или С) решить эту задачу? Т.е. я хочу прочесть отдельно, например, бит №7, поместить его в какую-то переменную, и чтоб в этой переменной находилось реальное значение (1 или 0). Заранее спасибо.
  Вверх
neutrino
Дата 9.5.2002, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Переменных длиной меньшей чем 1 байт нет. Так тебе все равно придется разбирать его по битам.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Melancholy
Дата 10.5.2002, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 1.4.2002

Репутация: нет
Всего: нет



попробуй так:
int byte2bit(int b, int nbit)
{
 return ((b >> nbit) & 1)
}
PM MAIL ICQ   Вверх
podval
Дата 12.5.2002, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Где я? Кто я?
****


Профиль
Группа: Экс. модератор
Сообщений: 3094
Регистрация: 25.3.2002
Где: СПб

Репутация: нет
Всего: 62



Пробовал в С работать с битовыми полями?
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.