Toon posts:

[EL] on popular request -- LEDs op parallelle port

Pagina: 1
Acties:

Verwijderd

Topicstarter
Aangezien er de laatste tijd meerdere mensen waren met vragen over aansturing van LEDs via de parallelle poort, ben ik gisteravond met een multimeter even aan het experimenteren geslagen :)
Het resultaat zijn een aantal kleine programmaatjes, waarvoor je met jullie creativiteit vast nog wel wat leuke toepassingen weet te bedenken.

je kunt het geheel in ZIP formaat downloaden [56kb] van:
http://www24.brinkster.com/f0rc3d/index.htm
edit:
okee download werkt nu wel


Hieronder de Readme file (in 15 minuten in elkaar geflanst dus ongetwijfeld vol typo's :))
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
-------------------------------
LED.ZIP [56 kbytes] CONTENTS
-------------------------------
LED.EXE     -- 27,752 bytes
CHKALIVE.EXE    -- 37,016 bytes
USERPORT.EXE    -- 11,776 bytes
USERPORT.SYS    --  4,256 bytes
README.TXT  --  3,197 bytes
-------------------------------------------------------------
LED.EXE en CHKALIVE.EXE werken als het goed is meteen onder
alle Win9x-varianten (dus 95, ME etc). Onder NT kan er normaal 
niet door programma's naar de parallelle poort geschreven 
worden. Hiervoor dien je een 3rd-party programma te gebruiken, 
wat de desbetreffende I/O locaties opengooit. Hiervoor zijn 
de volgende bestanden bijgesloten:

UserPort.sys  -- deze driver dien je in de windows\system32\drivers 
         directory te plaatsen en
UserPort.exe  -- dit programma dien je uit te voeren om 
         schrijven naar de parallele poort mogelijk te
         maken.
-------------------------------------------------------------
  USERPORT.EXE
-------------------------------------------------------------
Dit programma is zeer simpel; start het op en klik op de knop
gelabeled "Start". Dit geeft de I/O locaties in het lijstje
vrij, waaronder adres 378 (hexadecimaal), wat correspondeert
met LPT1 (de standaard printer poort). Hierna kun je programma
weer gewoon afsluiten, terwijl de driver geladen blijft. De
driver is geheel transparant voor de gebruiker.
-------------------------------------------------------------
  LED.EXE 
-------------------------------------------------------------
Dit programma stuurt een 8-bits signaal naar de LPT1 poort. 
De waarde van het signaal wordt op de commandline meegegeven:

  C:\>LED 64

Stuurt het signaal (binair:) 0100.0000, wat overeenkomt met 64
(decimaal) naar LPT1. Deze waarde blijft vervolgens net zo lang
op de poort staan, totdat er een andere waarde overheen
geschreven wordt. In het voorbeeld komt over de 7e lijn
een spanning van 3.3V en blijft de rest 0V. Wordt ingevoerd:

  C:\>LED 4

Dan zal alleen over de derde lijn een waarde van 3.3V komen te 
staan (want 4 decimaal komt overeen met 0000.0100 binair).

-------------------|-----------------------
 decimale invoer:  |  zet 3.3V over lijn:
-------------------|-----------------------
    1      |        1
    2      |        2
    4      |        3
    8      |        4
    16     |        5
    32     |        6
    64     |        7
    128    |        8
-------------------|-----------------------

Door meerdere waarden te combineren, bijvoorbeeld 32 + 4 + 2:

  C:\>LED 38

zet je een spanning van 3.3V over lijn 2, 3 en 6.
-------------------------------------------------------------
  CHKALIVE.EXE
-------------------------------------------------------------
Dit programma is een toepassingsvoorbeeld van LEDs op de
parallelle poort. Het programma gaat er vanuit, dat er een rode
LED op D7 (=lijn 7) en een groene LED op D6 (=lijn 6) zijn
aangesloten. Het programma pingt om de zoveel seconden de DNS 
Server van XS4ALL, wanneer de ping een aantal milliseconden 
retourneert blijft de LED groen branden, maar wanneer de ping
onsuccesvol blijkt, flits de rode LED twee maal, waarna opnieuw
geprobeerd word de ping uit te voeren.
-------------------------------------------------------------

Verwijderd

Topicstarter
PS: Het chkalive.exe programma is redelijk lui in elkaar gezet en gaat uit van een engelse windows :)

En ik dacht dat gezien de TTL standaard de spanning wel 5V zou zijn, maar die bleek dus (iets minder dan) 3.3V :?

[edit]
PPS: NT betekent dus WindowsNT4, NT5 [2000] en NT5.1 [XP] :)

  • Sinlath
  • Registratie: Juni 2001
  • Laatst online: 03-06 18:40
w00t dat word weer prutsen vanavond.

misschien een ideetje om chkalive een inifile uit te laten lezen, met daarin de te pingen server.

misschien dat er nog wat dingen in zoon ini toegevoegd kunnen worden.

[edit]

misschien kan je de ini ook retry-count invullen.
als niet succevolle ping is geweest 2 beepjes naar pc speaker??? :) ;)

Sinlath | Opinions may contain latency


Verwijderd

Topicstarter
De chkalive is alleen maar als voorbeeldje bedoelt en stelt zeer weinig voor :)

Zo is de timing alleen correct op mijn pc etc etc.
Maar het is meer een proof-of-concept. :)

Als er echter mensen zijn met een leuk idee, die zelf niet kunnen programmeren, wil ik opzich wel wat in elkaar zetten.

PS: ik draai op dit moment dus chkalive.exe in WinXP

  • Sinlath
  • Registratie: Juni 2001
  • Laatst online: 03-06 18:40
Op vrijdag 01 februari 2002 15:05 schreef f0r.c3d het volgende:
De chkalive is alleen maar als voorbeeldje bedoelt en stelt zeer weinig voor :)

Zo is de timing alleen correct op mijn pc etc etc.
Maar het is meer een proof-of-concept. :)

Als er echter mensen zijn met een leuk idee, die zelf niet kunnen programmeren, wil ik opzich wel wat in elkaar zetten.
zoals ik al zei :)

misschien die chkalive universeel maken.. dus met een inifile gestuurd dan kunnen mensen er zelf waardes in voegen, evt extra features enablen/disablen.

beetje opensource maken, en dan hebbie snel een mooi product (hopen we natuurlijk)

Sinlath | Opinions may contain latency


Verwijderd

Topicstarter
beetje opensource maken
die paar regels code? :) Ik denk niet dat de opensource community daar veel baat bij heeft ;)

Het was zelfs zo simpel, dat ik niet echt snap, waar al die mensen nou problemen mee hadden. Zo kun je de parallelle poort nog in QuickBasic aansturen; makkelijker wordt het echt niet :)

[edit] maar ik maak wel even een ini file voor die chkalive.exe aan. Je kunt trouwens instellen hoe snel de ping ge-retried door achter de EXE een variabele mee te geven. Zo is de standaardwaarde:

CHKALIVE 5

Die je dus ook krijgt als je gewoon opstart zonder opties achter de executable.

CHKALIVE 10

Maakt het proces 2x zo langzaam. Je kunt overigens het programma verlaten met Escape [duurt wel eventjes, omdat de huidige cycle moet worden afgerond].

Verwijderd

Op vrijdag 01 februari 2002 15:13 schreef f0r.c3d het volgende:

[..]

die paar regels code? :) Ik denk niet dat de opensource community daar veel baat bij heeft ;)

Het was zelfs zo simpel, dat ik niet echt snap, waar al die mensen nou problemen mee hadden. Zo kun je de parallelle poort nog in QuickBasic aansturen; makkelijker wordt het echt niet :)

[edit] maar ik maak wel even een ini file voor die chkalive.exe aan. Je kunt trouwens instellen hoe snel de ping ge-retried door achter de EXE een variabele mee te geven. Zo is de standaardwaarde:

CHKALIVE 5

Die je dus ook krijgt als je gewoon opstart zonder opties achter de executable.

CHKALIVE 10

Maakt het proces 2x zo langzaam. Je kunt overigens het programma verlaten met Escape [duurt wel eventjes, omdat de huidige cycle moet worden afgerond].
deze zet ik ook in m'n water koeling kast :P kan ik zien wanneer MXTREAM weer eens down is |:(

Verwijderd

Topicstarter
mjah die INI file lukte niet helemaal :)
Probeer het vanavond nog wel een Xtje, misschien heb ik dan wat meer geluk. Ik ga nu eens kijken of de gameport programmeren ook zo easy is.

Verwijderd

Op vrijdag 01 februari 2002 15:56 schreef f0r.c3d het volgende:
mjah die INI file lukte niet helemaal :)
Probeer het vanavond nog wel een Xtje, misschien heb ik dan wat meer geluk. Ik ga nu eens kijken of de gameport programmeren ook zo easy is.
mooi :P
Pagina: 1