Sterowanie urzadzeniem
Radoslaw Kojdecki
radek w media-com.com.pl
Śro, 12 Lis 2003, 13:44:08 CET
On Wed, 12 Nov 2003, Daniel Mroz wrote:
> > Mam klopot. Chce zrobic sterowanie urzadzeniem z kompa. Wumyslilem
> > sobie, ze mozna uzyc do tego portu rownoleglego. Jest tam 8 lini danych
> > d0-d7 dzieki ktorym mozna by otwierac i zamykac 8 obwodow. Tu misja
> > rozwidla sie na dwa problemy:
> > 1). Jak w PLD zapalac i gasic linie danych na wybranym porcie rownoleglym.
> > 2). Czy ktos widzial schemat tego typu urzadzenia?
> > Bardziej zalezy mi na odpowiedzi na pierwsze. Z drugim poradze sobie nie w
> > ten to w inny sposob
> Pogooglaj, powinienes wpasc na kilka gotowych rozwiazan. Kiedys w
> bodajrze Linux+ byl przyklad oprogramowania portu rownoleglego w C, mam
> w domu ten numer, wiec jakby co sluze pomoca. Podejrzewam jednak, ze w
> Internecie znajdziesz bardziej szczegolowe informacje na ten temat.
> Co do schematu, to kiedys zaprojektowalem sobie cos takiego pod port
> rownolegly. Obawiam sie, ze juz nie znajde schematu, ale projekt byl
> banalnie prosty (na TTLach), wiec nie sadze zebys potrzebowal pomocy w
> tej kwestii :)
>
Bezposrednio do D0-D7 podepnij wejscia ukladu np. 7406. Bedziesz mial na
wyjsciu otwarty kolektor ktory spokojnie wysteruje np. przekaznik
podciagniety do 12V (nie zapomnij o diodzie rownolegle do przekaznika).
A pozniej cos w stylu :
#define LPT_PORT 0x378
#define RESET_TIME 5
#include <sys/io.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int lpt_reset () {
if ( ioperm ( LPT_PORT, 1, 1 ) == 0 ) {
outb ( 1, LPT_PORT );
sleep ( RESET_TIME );
outb ( 0, LPT_PORT );
ioperm ( LPT_PORT, 1, 0 );
return 0;
} else {
fprintf ( stderr, "ERROR: ioperm ()\n" );
exit ( EXIT_FAILURE );
};
return -1;
}
main () {
lpt_reset ();
};
To akurat wystawia najpierw "1" na D0 outb (1,...) a po 5 sekundach 0 outb
(0,....).
pozdro.,
Radek
--
---------------------------------------------------------------------
Media-Com Sp. z o.o. 43-100 Tychy, ul. Długa 19
http://www.media-com.com.pl/ info w media-com.com.pl
---------------------------------------------------------------------
Więcej informacji o liście dyskusyjnej pld-users-pl