Computerhilfen.de Logo
Forum
Tipps
News

Win XP: C# : LPT-Eingänge lesen -> wie?

hallo alle zusammen!
dies ist mein erster beitrag.

ich bin in der 10. klasse realschule. als technikprüfung habe ich mir eine alarmanlage ausgesucht.
wir haben zuvor schon ein transistor-interface für den lpt-anschluss gebaut (habe ich schon mehrmals gemacht)welches ich schon um 3 eingänge für die alarmanlage erweitert habe.
zum programmieren benzuten wir c#.

mein programm soll so aussehen:

-warten...
-wenn signaleingang prüfen welcher pin (einfach nur auslesen welchen wert der port hat)

ab hier kein problem mehr!
-je nach wert bestimmte aktion ausführen z.b. ausgabe über interface

............
ich habe schon programmiert:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace ParallelPort2
{
class Program
{
[DllImport("inpout32.dll", EntryPoint = "Out32";)]
public static extern void Output(int adress, int value);
[DllImport("inpout32.dll", EntryPoint = "Inp32";)]
public static extern void Input(int adress, int value);


static void Main(string[] args)
{
.............
ich weiss jetzt nur nicht, wie ich den wert der eingänge auslese.

bitte um hilfe


Antworten zu Win XP: C# : LPT-Eingänge lesen -> wie?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ganz einfach. Erstmal musst du die Input-Funktion anders definieren, schließlich soll die ja den Wert zurückgeben

[DllImport("inpout32.dll", EntryPoint = "Inp32")]
public static extern int Input(int adress);
Dann kannst du über diese Funktion auf ein Register der Schnittstelle zugreifen:
int inp = Input(<adress>);
Für <adress> musst du natürlich die Adresse von dem Register, das du haben möchtest, angeben. Also wenn der LPT die Basisadresse 0x378 hat, kriegst du mit
0x378 (BaseAdress+0) das Datenregister (Pin 2-9),
0x379 (BaseAdress+1) das Statusregister und
0x37A (BaseAdress+2) das Kontrollregister
Aus dem int kannst du dann ja ausrechnen, welcher Pin an und welcher aus ist.

« Java, einzelne Bytes in Datei setzenVariablen setzen? »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!