[C++] vraagje ivm parallelle poort

Pagina: 1
Acties:

  • Mizitras
  • Registratie: September 2002
  • Niet online
Heb hier basiskaartje gemaakt, met extra kaart met 8-LED's.
Bij opstarten totpc af te sluiten branden er 6 vd 8.
Dit omdat er 6 zo'n gemiddeld 2.41 V krijgen, een mooi voltage, en de andree twee maar 1.3V, dus juist te weinig.
Deze LPT-poort, is bij mij 384 (kan me vergissen, maar het is juist n het programma) en heb hiernaar met outportb(poortnummer, 255); in een lus heelder poorten zitten proberen en waarden ipv 255 om toch maar IETS te zien.

Heb mijn eigen printer gecontroleerd, het poortnummer is correct, maar de code werkt dus niet denk ik.
Borland Turbo C++ (3.0) gebruikt.

Heb spanningen aan de poort blijven meten, het verandert niets.

Graag even antwoord op deze vragen om toch maar zeker te zijn, want zelfs op dit twijfel ik ondertussen:
-Het zijn toch de datalijnen die ik nodig heb om gegevens/signalen te sturen en dus mijn LED te laten branden of niet hé?
-Ik heb toch maar één ground-lijn nodig als - massa?
-DIe LED's worden toch 'parallel' gestuurd, dus dat die een van 1.3V krijgt is toch omdat er een signaal "130" wordt gestuurd naar de poort ?

Hier alleszins de code die ik heb gebruikt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <dos.h>

int main(void)
{
  unsigned t=638;
  int value;
  outportb(888, 255);
  delay(1500);
  cout << "\nWaarde " << value << " verkregen na '8' te hebben";
  cout << " gestuurd naar poort 888." << endl << endl;

  outportb(638, 255);
  delay(1500);
  cout << "\nWaarde " << value << "verkregen na '8' te hebben";
  cout << " gestuurd naar poort" << t << "." << endl << endl;

  outportb(888, 0);
  delay(1500);
  cout << "\nWaarde " << value << " verkregen na '0' te hebben";
  cout << " gestuurd naar poort 888." << endl << endl;

  outportb(638, 0);
  delay(1500);
  cout << "\nWaarde " << value << "verkregen na '0' te hebben";
  cout << " gestuurd naar poort" << t << "." << endl << endl;


  return 0;
}


Wat 'speels' mischien, maar kwerd radeloos na een tijd :(

"the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST"


  • No13
  • Registratie: Januari 2001
  • Laatst online: 31-08 17:15

No13

/me was here

je hebt neem ik aan geen variant van NT als OS ?

je zou ook in basic kunnen proberen of je de goede poort enzo hebt, daar is het nog wat makkelijker geloof ik

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

je ledje brand omdat je je ledje op poort D0 - D7 of op de andere 4 lpt gevalletjes hebt aangesloten. Maar jij kan zeker niet bepalen hoeveel Volt uit die poort komt....
Je moet naar de poort de 8 bit integer schrijven welke ledjes je aan wilt zetten.

Maar er zullen toch wel wat mooie voorbeeld programmaatjes zijn?

http://www.ik.ku.lt/lessons/konspekt/kai/lpt_potas.htm

[ Voor 0% gewijzigd door Skinkie op 12-09-2002 19:25 . Reden: Google gaf me gelijk! ]

Steun Elkaar, Kopieer Nederlands Waar!


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 21:01

.oisyn

Moderator Devschuur®

Demotivational Speaker

er zijn wel meer topics geweest in p&w over het aansturen van de parallelle poort... moet je even zoeken, misschien dat je daar nog info uit kunt halen (ps: parallelle is dus met 2x 2 l's :))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mizitras
  • Registratie: September 2002
  • Niet online
Op bovengaande:

-Neen, ik heb enkel nu gemakkelijkshalve een WIn3.11, DOS-box, Win95, win98, win98se computer(s) waar ik desnoods het op kan aansluiten. Zelf werk ik op een Win98 computer.
Waarom zou ik op een NT willen werken? (Zo ja, uiteraard WIn2k, maar waarom NT?, onder DOS maakt mijn win9x versie toch geen belang uit)

-Jep, LED's zitten op de Datalijnen. Andere 4 lpt's gevalletjes??? Ik heb maar twee printerpoorten, alletwee ff gebropeerd in dit programmaatje.
Nope, Voltage blijkt niet echt regelbaar, daar zit het hem juist.
De 8-bit integer, is mijn 255 dan geen integer van 8-bits ???
Heb gezocht naar dergelijke zaken, heb dit ook uit een boek, maar er zitten fouten in de VB programmatuur dus ben heb ik het gemakshalve maar overgedaan in C++.

-Ja, paraLLeLLe communicatie en seriële topics zijn er hier wel, en uiteraard heb ik die al uitgespit.
En nee, zoveel info is daar niet uit te halen want deze compilter waarin ik de C/C++ beoefen zal 16-bit programma's compileren, dus forget windows zaken van VC(++).

"the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST"


  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 31-07 15:50
Hang een DA converter aan de 8 bits en je hebt een regelbaar voltage.

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Verwijderd

[denk bullshit]

  • Mizitras
  • Registratie: September 2002
  • Niet online
djexplo, dat ism ogelijk, maar kan ik op zijn minst niet ON/OFF regelen? Dus op dat opzicht scheelt er al iets ergens.

Fladder, ik heb geen idee wat je met CR_INI op 1 bedoelt, maar ik zal het commando eens gebruiken. (Ps: Ik werk met Borland Turbo compiler 3.0, ben benieuwt dat dit commando + arguments het toelaten :)

"the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST"


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Mizitras schreef op 12 september 2002 @ 20:12:
Op bovengaande:
De 8-bit integer, is mijn 255 dan geen integer van 8-bits ???
Jawel... maar met 255 zou alles aan moeten zijn, alleen volgens mij heeft de lpt poort nog zoiets als een strobe signaal... voordat er iets uit komt.

(Kon je nix met de C++ example op die pagina?)

http://www.programmersheaven.com/zone15/cat610/

staan ook nog wat link apis

Steun Elkaar, Kopieer Nederlands Waar!


Verwijderd

De waarde die je naar een poort schrijft zijn de bitwaardes van de datalijnen die je ON/OFF wilt zetten. Die bitwaardes zijn eigenlijk binair (machten van 2):

code:
1
2
3
4
5
6
7
8
9
10
00000000 =   0 = alle leds uit
00000001 =   1 = led 1 aan
00000010 =   2 = led 2 aan
00000011 =   3 = led 1 en led 2 aan
00000100 =   4 = led 3 aan
00000101 =   5 = led 1 en led 3 aan
00000110 =   6 = led 2 en led 3 aan
00000111 =   7 = led 1 en led 2 en led 3 aan
             ...
11111111 = 255 = alle leds aan


Als je dus led 5 wilt laten branden dan moet je waarde 25 - 1 = 16 naar de poort schrijven, wil je leds 7 en 8 laten branden dan schrijf je waarde 28 - 1 + 27 - 1 = 128 + 64 = 192

(Dit is echt very basic stuff)

edit:

Strobe (pin 1 - basisport + 2 bit 0) is alleen voor de printer van belang, de datalijnen (pin 2-9 - basisport bits 0-7) moet je gewoon zo kunnen aansturen. Weet je zeker dat je leds aan pin 2 t/m pin 9 hangen?

Kijk eens naar deze source http://ee.cleversoul.com/parallel_port_source.html

  • Mizitras
  • Registratie: September 2002
  • Niet online
Ja, over de signalen die ikm oet .
problemen.
Ga over enkele minuutjes is de draadjes op nog andere pinnetjes solderen.

Overigens, tis toch juist dat ik m'n 8-op een datalijn soldeer die me een + signaal geven en de andere kant van m'n LED's op één ground signaal maar hoef te plaatsen voor m'n afvoer?
(Jaja, ik weet het, niet al te correcte termen, maar mag het eens ja :)

Enne, als zo'n signaal erdoorkomt, is dat dan 2.55V door zo één LED'je of 2.0V ?
Dat op zich door één LED'je is niet regelbaar dacht ik hé, of verkeerd?

Een andre knutselaar hier op het board had er metertje (VU-meter) gemaakt, ook door middel van parallele poort, rechtstreeks aangesloten zei ie.
Dus, het lijkt me wat tegenstrijdig, maar dus GEEN weerstand van een +-200ohm ofzo VOOR men LED om de stroom te beperken?

"the fucking alpha cpp compiler seems to fuck up the goddam type "LPITEMIDLIST", so to work around the fucking peice of shit compiler we pass the last param as an void *instead of a LPITEMIDLIST"


Verwijderd

Mizitras>> Neem je de tijd om deze link eens rustig door te lezen: http://et.nmsu.edu/~etti/...uter/printer/printer.html
Ik denk dat deze page wel ongeveer al je vragen beantwoordt, van de pinconfiguratie t/m de waardes van de voorschakelweerstanden van je leds. (En ja, je hoeft maar massa van een groundpin te trekken.)

Verwijderd

Het is aan te bevelen om de LEDs in serie met een weerstand te schakelen. Tegenwoordig zijn (voor zover ik weet) de meeste parallelle poorten wel uitgerust met een buffer, maar anders moet je die zelf ff tussen je poort en je LED's zijn, anders kun je je poort opblazen en dat wil je echt niet hebben.

Verwijderd

Er kunnen ook wel eens problemen ontstaan door instelling van paralelle poort (epp of ecp)
Ik denk niet dat dit je probleem gaat oplossen maar hou het even in je achterhoofd of probeer het even uit.
In de bios kan je het heel waarschijnlijk wel veranderen....
Pagina: 1