#include <stdio.h> #include <stdlib.h> #include <sys/io.h> #include <signal.h> #include <unistd.h>
#define Pbase 0x378 #define CTLVFD 0X37a
void ctlled(unsigned char ctlbyte);
int main() { ioperm(Pbase,2,1); ioperm(CTLVFD,1,1); ctlled(0x8C); }
void ctlled(unsigned char ctlbyte) { outb(ctlbyte,pbase); return; }
我测试过,刚启动的系统并口状态(数据位)是低电平,当我运行我的程序的时候,输出电压变为3v多,这是为什么呢?按照道理应该是波形输出才对,现在的现象是outb(ctlbyte,pbase);这句话我就是写成outb(0xf0,pbase);也不会在有低电平输出了。郁闷中,各位朋友帮忙。 |