ms_test_relay.c
来自「四路继电器输出,基于linux 2.4的驱动及测试程序.」· C语言 代码 · 共 97 行
C
97 行
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <fcntl.h>
//#include <asm/arch/major.h>
#define DEVICE_RELAY "/dev/relaydriver"
#define RELAY1_ON_PLUSE 1
#define RELAY1_ON 2
#define RELAY1_OFF 3
#define RELAY2_ON_PLUSE 4
#define RELAY2_ON 5
#define RELAY2_OFF 6
#define RELAY3_ON_PLUSE 7
#define RELAY3_ON 8
#define RELAY3_OFF 9
#define RELAY4_ON_PLUSE 10
#define RELAY4_ON 11
#define RELAY4_OFF 12
int main()
{
int fd;
int val=-1;
//int ret = 0;
if((fd=open(DEVICE_RELAY,O_RDONLY | O_NONBLOCK))<0)
{
perror("can not open device");
exit(1);
}
while(1){
printf("1:RELAY1_ON_PLUSE(100ms) , 2:RELAY1_ON, 3:RELAY1_OFF\n"); printf("4:RELAY2_ON_PLUSE(100ms) , 5:RELAY2_ON, 6:RELAY2_OFF\n"); printf("7:RELAY3_ON_PLUSE(100ms) , 8:RELAY3_ON, 9:RELAY3_OFF\n"); printf("10:RELAY4_ON_PLUSE(100ms) , 11:RELAY4_ON, 12:RELAY4_OFF\n"); printf("0: exit\n"); printf("please choose :__"); printf("\n");
scanf("%d",&val);
switch(val) { case RELAY1_ON_PLUSE: ioctl(fd,RELAY1_ON_PLUSE,100); break; case RELAY1_ON: ioctl(fd,RELAY1_ON,val); break; case RELAY1_OFF: ioctl(fd,RELAY1_OFF,val); break; case RELAY2_ON_PLUSE: ioctl(fd,RELAY2_ON_PLUSE,100); break; case RELAY2_ON: ioctl(fd,RELAY2_ON,val); break; case RELAY2_OFF: ioctl(fd,RELAY2_OFF,val); break; case RELAY3_ON_PLUSE: ioctl(fd,RELAY3_ON_PLUSE,100); break; case RELAY3_ON: ioctl(fd,RELAY3_ON,val); break; case RELAY3_OFF: ioctl(fd,RELAY3_OFF,val); break; case RELAY4_ON_PLUSE: ioctl(fd,RELAY4_ON_PLUSE,100); break; case RELAY4_ON: ioctl(fd,RELAY4_ON,val); break; case RELAY4_OFF: ioctl(fd,RELAY4_OFF,val); break; case 0: close(fd); exit(0); break; default: printf(" err ! \n"); break; }
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?