LINUX.ORG.RU

небольшой робот и программирование lpt


0

0

Здравствуйте.
Есть самосделанная машинка, которая соединяется с ПК через LPT порт.
Из функций только передвижение вперед/назад/влево/вправо. До этого
программка для управления писалась уже на паскале, и работало все в досе,
теперь же стоит задача переписать все на Сях, и под линукс. Собственно вопрос:
как lpt программируется в линуксе? Кто-то мне давал оч.хороую ссылку, но оня блин,
была мною утеряна. Буду благодарен за ссылочку на документашку на русском языке, 
ну или на английском. Кто-нибудь занимался такими штучками, может остались заговки 
программ? Ещё блин сроки поджимают, надо сделать за неделю всё-всё-всё :/

s/заговки/заготовки

pisun
() автор топика
Ответ на: комментарий от Ex

pasib. a dokumenta in english net ni u kogo? (takoi bolshoi pomnitsia, s kartinkami i primerami)

pisun
() автор топика

Безумное моргание светодиодами...



##########Makefile####################
GCC = gcc -Wall
cc = cc
LD = ld

SRC:=outp.c

TARGET = main

all:
	$(GCC) $(SRC) -o $(TARGET) 
#	$(LD) *.o -o main
	rm -f *.o


clean:
	rm -f *.o
	rm -f $(TARGET) 




##########C file####################
#include <stdio.h>
#include <error.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <asm/io.h>

#ifdef __sparc__
#  error "This program can't compile or run on the Sparc platform"
#endif

#ifdef __alpha__
#include <sys/io.h> /* ioperm */
#endif

int main(int argc, char **argv)
{
    unsigned int i,n,v;

    setuid(0); /* if we're setuid, do it really */
    /*for (i=1;i<argc-1;i++)*/ {
//        sscanf(argv[i],"%x",&n);
//        sscanf(argv[++i],"%x",&v);
        if (ioperm(0x378,1,1)) {printf("ioperm(): %s\n",strerror(errno)); exit(1);}

    do{
    sleep(2);
    outb(0x0004, 0x378);
    sleep(1);
    outb(0x0000, 0x378);
    }while(1);
    
    }
    return 0;
} 

binr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.