Neue Antwort schreiben 
 
Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
LPT1 mit C++ ansteuern?
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #41
RE: LPT1 mit C++ ansteuern?
Cool :)

Grundsätzlich müsste jetzt auch der alte Code tun.. wobei das Beispielprogramm ggf. auch ne nette Basis für weiteres Gebastel ist, relevant sind ja nur die Inp32/Out32 Anweisungen.
27.04.2013 18:56
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Basstra Offline
 

Beiträge: 512
Registriert seit: Mar 2013
Beitrag #42
RE: LPT1 mit C++ ansteuern?
Ja, das tut nun auch :)))

Vielen dank noch mal für die ganze Hilfe! :))

Nun werde ich mich mal an einem kleinen Lauflicht versuchen!

So hier ist die erste Version vom Lauflicht :-)

klick mich

(Dieser Beitrag wurde zuletzt bearbeitet: 27.04.2013 19:33 von Basstra.)
27.04.2013 19:06
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #43
RE: LPT1 mit C++ ansteuern?
Nett, hab das Video erst jetzt gesehen.

Nur so aus Neugier.. das allererste Programm in diesem Thread wo du die Datenbits via Byteprotokoll setzt (also mit fopen) funktioniert das wider erwarten doch? Oder machen dir OS-Buffer und Ack-Bits den Plan zunichte?
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 11:36 von gandro.)
28.04.2013 11:36
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Basstra Offline
 

Beiträge: 512
Registriert seit: Mar 2013
Beitrag #44
RE: LPT1 mit C++ ansteuern?
Ich habe es selber noch nicht so getestet, werde ich im laufe des Abends mal machen!

Mein Lehrer meinte, es würde so gehen. Bin mal gespannt.

Ich habe den Code nun noch mal genau so gestartet wie er im ersten Post ist, da tut sich aber garnüscht!

Nun werde ich mal weiter an dem Lauflicht basteln, irgendwie bekomme ich die LED die am 2. Pin angeschlossen ist nicht angesprochen.

Code:
char byte = 1 << 0;

tut nichts!

und

Code:
char byte = 1 << 1;
spricht die 2. LED an

Hättest du da eventuell noch nen guten tipp für mich? :)


Okay, Problem gelöst, lag an der Hardware... werde mir demnächst mal ein ordentliches Kabel besorgen

(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 14:00 von Basstra.)
28.04.2013 13:00
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #45
RE: LPT1 mit C++ ansteuern?
Hätte mich auch erstaunt wenn sich mit dem ursprünglichen Code was bewegt hätte. Das einzige was ich mir vorstellen könnte, ist dass du 1 Byte senden kannst, danach blockierts weil kein ACK reinkommt. Aber vermutlich blockiert das Protokoll schon vorher.

Mein Tipp übrigens um die Bitaddressierung etwas zu vereinfachen: Definier dir C/C++ Konstanten für die ganzen Bitpositionen:

// Ausserhalb aller Funktionen
#define D0 (1 << 0)
#define D1 (1 << 1)
#define D2 (1 << 2)
#define D3 (1 << 3)
#define D4 (1 << 4)
#define D5 (1 << 5)
#define D6 (1 << 6)
#define D7 (1 << 7)

// In deinem Code:

// Pin D1, D3 und D4 setzen:
char byte = D1 + D3 + D4; // (alternativ: byte = D1|D3|D4; )
Out32(base, byte);
// Pin D3 und D4 wieder ausmachen:
char byte = Inp32(base) - D4 - D3; // (alternativ: byte = Inp32(base) & ~D4 & ~D3)
Out32(base, byte);
// Status von D5 auslesen:
bool status = !!(Inp32(base) & D5);
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 14:58 von gandro.)
28.04.2013 14:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Basstra Offline
 

Beiträge: 512
Registriert seit: Mar 2013
Beitrag #46
RE: LPT1 mit C++ ansteuern?
Das mit der Präprozessor Anweisung ist ne gute Idee, danke dafür.

Ich bastel gerade noch an dem Lauflicht, da habe ich noch ne Frage und zwar habe ich erstmal so gelöst:

Code:
for (vor=0; vor <= 7; vor++) {
     char byte = 1 << vor;
      Out32(base, byte);
      Sleep(500);
}


So geht es auch in eine Richtung, aber leider sind meine Versuche gescheitert es in die andere Richtug zurück laufen zu lassen, ich habe es so gemacht:


Code:
for (zur=7; zur <= 0; zur--) {
      char byte = 1 << zur;
      Out32(base, byte);
      Sleep(500);
}

Ich habe nun 8 LEDs zum testen angeschlossen ud wen ich für jede LED dann die 3 Zeilen Tippen würde wäre es ja nicht so sinnig...
Leider komme ich hier gerade nicht weiter :(

28.04.2013 15:34
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #47
RE: LPT1 mit C++ ansteuern?
Problem ist deine Abbruchbedingung. Im zweiten Loop sagst du "laufe solange wie gilt: 'zur <= 0'". Die Variable "zur" ist aber zum Startpunkt nicht kleiner-gleich Null, daher wird die Schleife nicht ausgeführt. Da müsste stehen: zur >= 0;
(Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2013 15:38 von gandro.)
28.04.2013 15:38
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Basstra Offline
 

Beiträge: 512
Registriert seit: Mar 2013
Beitrag #48
RE: LPT1 mit C++ ansteuern?
Yes! Es tut seinen Dienst! Super! :-)

Video Nr.2

Das schwierigste ist getan, nun kommen die Feinheiten. :-)

28.04.2013 15:47
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Alpha Offline
Oskar

Beiträge: 16.337
Registriert seit: Jan 2009
Beitrag #49
RE: LPT1 mit C++ ansteuern?
3gp.. omg. Gibts das auch in einem gescheiten Format?

Mark IV Style Motherfucker!
28.04.2013 15:52
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Basstra Offline
 

Beiträge: 512
Registriert seit: Mar 2013
Beitrag #50
RE: LPT1 mit C++ ansteuern?
(28.04.2013 15:52)Alpha schrieb:  3gp.. omg. Gibts das auch in einem gescheiten Format?

Nö, wenn du ein Problem hast musste es dir ja nicht angucken. ;-)

28.04.2013 15:54
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste