jonasge
24-08-2002, 15:07
Hallo,
ich habe bereits ein Display am Parport, und dieses wollte ich jetzt mit einem C-programm
das auf dem Gameport lauscht steuern. bzw infos ueber den status des PCs anzeigen.
Dazu habe ich vollgendes gecoded:
#include <stdio.h>
#include <stdlib.h>
#include <linux/joystick.h>
#include <fcntl.h>
#define JOY_DEV "/dev/js0"
int main()
{
int fd;
int btn1, btn2, btn3, btn4;
struct JS_DATA_TYPE js;
if( ( fd = open( JOY_DEV, O_RDONLY ) ) < 0 )
{
printf("\nCouldn't open joystick device %s\n", JOY_DEV);
return 1;
}
while(1) /* main loop */
{
if( read( fd, &js, JS_RETURN ) != JS_RETURN )
{
printf("\nCouldn't read the joystick!\n");
return 1;
}
btn1 = js.buttons & 1;
btn2 = js.buttons & 2;
btn3 = js.buttons & 3;
btn4 = js.buttons & 4;
printf("Btn 1: %d | Btn 2: %d | Btn 3: %d | Btn 4: %d |\r", btn1, btn2, btn3, btn4);
usleep (1000);
}// while end
close(fd);
return 0;
Dies ist zwar nur ein Testporgramm, aber ich sehe ob sich was an dem Buttons tut.
Die Buttons habe vollgende Pins:
Button 1: Pin2 --- Pin 4
Button 2: Pin7 --- Pin 4
Button 3: Pin10 -- Pin 4
Button 4: Pin14 -- Pin 4
(dazwischen muss ein taster)
Wenn ich jetzt ein modprobe emu10k1-gp mache gibt er das in der log aus:
kernel: gameport0: Emu10k1 Gameport at 0xa400 size 8 speed 1269 kHz
Das ist ja noch OK, aber wenn ich jetzt ein
modprobe analog
mache, und danach mein Programm starten will sprint es raus und sagt:
Couldn't open joystick device /dev/js0
Was mache ich falsch ??
Gruss
Jonas
ich habe bereits ein Display am Parport, und dieses wollte ich jetzt mit einem C-programm
das auf dem Gameport lauscht steuern. bzw infos ueber den status des PCs anzeigen.
Dazu habe ich vollgendes gecoded:
#include <stdio.h>
#include <stdlib.h>
#include <linux/joystick.h>
#include <fcntl.h>
#define JOY_DEV "/dev/js0"
int main()
{
int fd;
int btn1, btn2, btn3, btn4;
struct JS_DATA_TYPE js;
if( ( fd = open( JOY_DEV, O_RDONLY ) ) < 0 )
{
printf("\nCouldn't open joystick device %s\n", JOY_DEV);
return 1;
}
while(1) /* main loop */
{
if( read( fd, &js, JS_RETURN ) != JS_RETURN )
{
printf("\nCouldn't read the joystick!\n");
return 1;
}
btn1 = js.buttons & 1;
btn2 = js.buttons & 2;
btn3 = js.buttons & 3;
btn4 = js.buttons & 4;
printf("Btn 1: %d | Btn 2: %d | Btn 3: %d | Btn 4: %d |\r", btn1, btn2, btn3, btn4);
usleep (1000);
}// while end
close(fd);
return 0;
Dies ist zwar nur ein Testporgramm, aber ich sehe ob sich was an dem Buttons tut.
Die Buttons habe vollgende Pins:
Button 1: Pin2 --- Pin 4
Button 2: Pin7 --- Pin 4
Button 3: Pin10 -- Pin 4
Button 4: Pin14 -- Pin 4
(dazwischen muss ein taster)
Wenn ich jetzt ein modprobe emu10k1-gp mache gibt er das in der log aus:
kernel: gameport0: Emu10k1 Gameport at 0xa400 size 8 speed 1269 kHz
Das ist ja noch OK, aber wenn ich jetzt ein
modprobe analog
mache, und danach mein Programm starten will sprint es raus und sagt:
Couldn't open joystick device /dev/js0
Was mache ich falsch ??
Gruss
Jonas