FreeBSDでパラレルポートの制御を試しており、ネットのサンプルを元にして以下のコードを書きました。
2秒ごとにHi,Loを繰り返すはずですがLoのままでうまくいきません。
特権レベルの設定等なにか不足するものがあるのでしょうか?ちなみにこのプログラムはrootで実行しました。
ハード的な故障でしょうか?
#include <fcntl.h>
#include <sys/ioctl.h>
#include <dev/ppbus/ppi.h>
#include <dev/ppbus/ppbconf.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
int fd;
u_int8_t val;
if ((fd=open("/dev/ppi0", O_WRONLY)) < 0) {
fprintf(stderr, "Error!\n");
exit(-1);  }
  
  while(1){ 
   val = 0x00;
   ioctl(fd, PPISDATA, &val);
   sleep(2);

   val = 0xFF;
   ioctl(fd, PPISDATA, &val);
   sleep(2);
  }

close(fd);
return 0;  }
よろしくおねがいします。