URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5012
[ Назад ]

Исходное сообщение
"при чтении порта 0x201 (gameport) читаются только состояния кнопок."

Отправлено greenetc , 07-Янв-06 11:45 
делаю inb(0x201)и получаю изменения только при нажатии кнопок Ax Bx Ay By, то есть на состояния потенциометров не реагирует. Что делать ?

Содержание

Сообщения в этом обсуждении
"при чтении порта 0x201 (gameport) читаются только состояния ..."
Отправлено gyn61 , 07-Янв-06 14:50 
>делаю inb(0x201)и получаю изменения только при нажатии кнопок Ax Bx Ay By,
>то есть на состояния потенциометров не реагирует. Что делать ?


#define CMAX 9999

int v[4];
int mask = 15;

outb(0x201, 0);

for (i = 0; mask && i < CMAX; i ++) {
  int b = inb(0x201) ^ mask;
  if (b & 0x01) { v[0] = i; mask ^= 0x01; }
  if (b & 0x02) { v[1] = i; mask ^= 0x02; }
  if (b & 0x04) { v[2] = i; mask ^= 0x04; }
  if (b & 0x08) { v[3] = i; mask ^= 0x08; }
}

Только это должно делаться при запрещенных прерываниях :(