![]() |
|
|
![]()
|
|
| Кепка |
|
|||
|
Unregistered |
Я все о том же порте Centronics. Конечно же спасибо за совет Chingachguk'у, но, видимо, он не так меня понял (или я некорректно задал вопрос). Постараюсь осветить проблему пошире: насчет функций inport и inportb. В С они имеют такие прототипы:
int intport (int ); unsigned char inportb (int ); Что из этого следует? Из этого следует, что эти функции возвращают слово и байт состояния порта, которого ты указываешь в скобках. Допустим, что на порт состояния Centronics (379) пришла комбинация бит: 11111111. Что в десятичном эквиваленте означает 255. Эти функции прочтя состояние порта возвратят эту комбинацию в какую-то переменную. А мне же нужно прочитать отдельно БИТЫ этого порта, т.е. чтоб в переменной находился либо 0, либо 1, но никак не 255 или подобное этому. Я понимаю, что выходное значение этих функций можно разложить на биты, но это долго, неэкономично. Можно ли как-нибудь (с помощью ассемблера или С) решить эту задачу? Т.е. я хочу прочесть отдельно, например, бит №7, поместить его в какую-то переменную, и чтоб в этой переменной находилось реальное значение (1 или 0). Заранее спасибо. |
|||
|
||||
| neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Переменных длиной меньшей чем 1 байт нет. Так тебе все равно придется разбирать его по битам.
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
| Melancholy |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 1.4.2002 Репутация: нет Всего: нет |
попробуй так:
int byte2bit(int b, int nbit) { return ((b >> nbit) & 1) } |
|||
|
||||
| podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: нет Всего: 62 |
Пробовал в С работать с битовыми полями?
|
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |