#include #include #include #include #include #define EOL 0x00 #define DATA0 0x01 int main(void); u_int8_t reads(int); u_int8_t d_live(u_int8_t); int main(void) { int fd,i,j,f; u_int8_t val,dlval,oval; char move; float dd,bb; /*maesyori*/ oval = 0x00; fd=open("/dev/ppi0",O_RDWR,0600); /*printf("please enter the speed of R2-D2!!"); scanf("%d",&bb);*/ /*mugen loop*/ while(1){ printf("\ndo you need some revolution!? y/n\n"); move = getchar(); if(move == EOL)move=getchar(); if(move == 'y'){ for(i=0;i<500;i++){ val = reads(fd); dlval = d_live(val); /*default dd=0;dd<1000;dd++*/ for(dd=0;dd<350;dd++){ ioctl(fd,PPISDATA,&dlval); } for(dd=0;dd<350;dd++){ ioctl(fd,PPISDATA,&oval); } } f = f + 1; printf("done...%d\n",f); } else if(move == 'n')break; } printf("end\n"); close(fd); exit(0); } u_int8_t reads(int fd) { u_int8_t load_st; ioctl(fd,PPIGSTATUS,&load_st); return load_st; } u_int8_t d_live(u_int8_t st) { u_int8_t re; printf("status=[%d]\n",st); /*tyokusin*/ if(st == 103 || st == 199){ re = 0x03; printf("forword\n"); return re; } /*migi*/ else if(st == 71){ re = 0x01; printf("turn right\n"); return re;} /*hidari*/ else if(st == 231){ re = 0x02; printf("turn left\n"); return re;} }