Sida 1 av 3
Paralellport
Postat: 8 januari 2007, 19:11:04
av ejohsjo
Jag undrar om man med hjälp av något program och LPT-port kan styra LED:s?
börjar med led sen kommer det att bli 100-150W lampor!
/
Johan
Postat: 8 januari 2007, 19:33:05
av prototypen
För ett tag sedan var det en som skulle styra ett flipperspel och jag tappade den tråden då han fått alla dioderna att lysa som tänkt. Borde vara samma lösning.
Leta på forumet.
Protoypen
Postat: 8 januari 2007, 20:48:08
av squiz3r
Tex paraport funkar utmärkt. om du menar styra dem manuelt, om du menar att dem själv ska ändras lite då o då så vet jag ej något...
Postat: 8 januari 2007, 21:13:53
av Macce
Operativsystem?
Postat: 8 januari 2007, 21:14:22
av toli91
jag har haft en hel del exempel på lptn men har inte det kvar tror jag det var i C++ om du kan det? ska leta efter det
annar ställer jag järna upp att programmera det åt dig

Postat: 8 januari 2007, 21:33:50
av JimmyAndersson
Annars är det ganska lätt i QBasic.

Postat: 8 januari 2007, 21:36:45
av toli91
vad är QBasic?
har du några exempel på det?
Postat: 8 januari 2007, 21:42:00
av JimmyAndersson
QBasic är en variant på programmeringspråket Basic.
Ett litet exempel på ett program som läser av COM-porten:
(Använde det till min kamerarobot)
Kod: Markera allt
SCREEN 12: CLS
COLOR 9
LOCATE 10, 9: PRINT "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿"
LOCATE 11, 9: PRINT "³ X: Y: ³"
LOCATE 12, 9: PRINT "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
LOCATE 1, 49: PRINT "PLACERING"
COLOR 7
LOCATE 2, 13: PRINT "K A M E R A - R O B O T"
LOCATE 20, 10: PRINT "Q - Sluta."
storlek = 100
ruta1a = 370: REM x
ruta1b = ruta1a + storlek
ruta1c = 14: REM y
ruta1d = ruta1c + storlek
REM Ruta 1
LINE (ruta1a, ruta1c)-(ruta1b, ruta1c), 9
LINE (ruta1a, ruta1c)-(ruta1a, ruta1d), 9
LINE (ruta1b, ruta1c)-(ruta1b, ruta1d), 1
LINE (ruta1a, ruta1d)-(ruta1b, ruta1d), 1
OPEN "COM1:9600,N,8,1,BIN" FOR RANDOM AS #1
COM(1) ON
DO
varde$ = INPUT$(1, #1)
v = ASC(varde$)
IF v <= 127 AND v > 2 THEN x = v
IF v >= 128 THEN y = v
IF v <> 0 THEN
LOCATE 11, 13
PRINT x
LOCATE 11, 21
PRINT y
ritax = x * 2 + 350: ritay = 388 - y * 2
PSET (ritax, ritay), 15
END IF
IF INKEY$ = "q" THEN END
PSET (x * 2 + 350, 388 - y * 2), 8
LOOP
För att öppna och läsa av COM-porten räcker det med:
Kod: Markera allt
OPEN "COM1:9600,N,8,1,BIN" FOR RANDOM AS #1
COM(1) ON
varde$ = INPUT$(1, #1)
Resultatet av avläsningen hamnar i variabeln varde$
Det finns snyggare sätt, men det här är det enklaste.
Postat: 8 januari 2007, 21:47:34
av toli91
det värkar ju inte så svårt. såg lite konstigt ut om man är van vid C
Postat: 8 januari 2007, 21:59:43
av JimmyAndersson
Förstår det.

C och Basic är ganska lika, men strukturen skiljer sig lite. Jag har knappt programmerat något C, men jag förstår det ändå. Det kanske är värre åt andra hållet.
Postat: 8 januari 2007, 22:05:55
av toli91
jag saknar paranteser i det som jag ser som funcktioner
Lite förbistring här
Postat: 9 januari 2007, 06:16:22
av SvenPon
Frågeställaren skriver om parallellporten och Jimmy Andersson
om det gamla "urakaijpa" programmet QBasick och Com port.
Det har hänt en del sedan 1990.
Postat: 9 januari 2007, 06:49:28
av Cano
Jag har ett väldigt simpelt program som min bror skrev åt mig?
Med det går det tända och släcka 8 olika LED eller annat, jag byggde ett reläkort.
Det fungerar på Win XP (bara det jag har testat det på)
PM mig om du vill att jag ska maila det.
Postat: 9 januari 2007, 10:36:50
av vfr
Det var ju faktiskt toli91 som frågade efter ett exempel. Och med tanke på att han inte ens visste vad QBasic är, så var det nog mer ett exempel vilket som helst för att se hur det ser ut. Att sedan Jimmys exempel hade med portprogrammering att göra, om än serieport, var nog mer en bonus.
Postat: 9 januari 2007, 12:32:23
av nanopile
Jag gjorde just så att jag började med skrivarporten, andvände iofs TurboC och skrev till minnesadressen för comporten, blev riktigt myket snabbare än vad jag hadde andvändning för men på grund av det så byggde jag motorkontroller också.
Nu har jag muxat alltihop och får ut 128 bitar i bredd som jag inte har andvändning för det heller

och är inne på att försöka förstå usb eller pci interfacet.
Har för mig att 0x0378 var adressen för att skriva en byte till skrivarporten på min burk, rätt vanlig om jag inte minns fel.
Sedan följer två relaterade adresser direkt efter denna.
Går att plocka fram exakt adress från minnet men minns ej hur.