![]() |
[Pascal] Data outputten naar een parallelle poort lukt niet...
Ik ben voor school bezig met een PWS. De bedoeling is om een lasershow te maken, door middel van twee spiegeltjes elk op een motortje met weer elk een DAC dr bij. En dan een programma schrijven om er leuke figuurtjes mee te tekenen. Nu ben ik dus met Pascal begonnen, omdat onze begeleider en onszelf dat de beste en makkelijkste keus leek. Nu heb ik een test-apparaatje, met acht LED-jes, waarmee je dus vrolijk binair kan tellen. Aangesloten op m'n COM1-poort. Ik heb het volgende test-programma geschreven, maar hij werkt niet. Ik kan wel de waarde van de poort lezen, maar 'em niet veranderen.
Code:
program TestPort; |
hoe weet je dat het lezen goedgaat? bedoel je dat je echt waarden terugkrijgt die je verwacht van de hardware? of dat je gewoon uberhaupt waarden terugkrijgt? dat zegt namelijk niet zoveel :) en ik neem aan dat je met paralelle poort seriele poort bedoelt?
|
Citaat:
Maar ehm. Ik denk dat ik dan serieel bedoel, ik weet het verschil nooit. :o |
Het is dus de LPT-poort... :o *blont*
|
Citaat:
Maarem, verder geen pascal kennis hier hoor :) |
ehm, Bits is een Byte, die wordt nooit 256.
pak gewoon een Integer en dan gebruik je telkens (Bits mod 256). |
Citaat:
Maar het gaat me er meer om dat ik niets naar die poort kan zenden... Ik kan de waarde dus wel lezen, maar er geen nieuwe aan toekennen. Met QuickBasic lukte het wel, op dezelfde computer hetzelfde testapparaatje... |
quickbasic is ook vele malen stabieler. gebruik je TP70? Want onder turbo pascal is er een bug onder wat snellere computers. Pentium 200 en sneller ofzo. Misschien ligt het probleem hier?
|
Citaat:
Maar als ik die bug zou hebben (gebruik 5.5, kan geen frans) zou hij het programma helemaal niet willen draaien. ;) |
Je output goed, maar je leest anders, namelijk uit het statusregister.
Outputten: Port[port]:=1; Lezen moet je alsvolgt doen: DataIn=Port[port+1]; vervolgens een vage berekening maken met DataIn, om de waarde 1 te krijgen, maar die weet ik zo niet meer. Zie ook: http://www.djoe.nl/default.asp?conte...Ledenaandeslag |
Citaat:
|
Die source is crappy, heeft ie niet veel aan, bovendien ben ik hem kwijt. Het progje werkte echter wel (y)
|
Citaat:
Maar de output werkt gewoon niet... En ik weet ook wel hoe het zit met het Data, Status en Control register, maar dat heb ik nu nog niet nodig. Het gaat me alleen om een getal te kunnen sturen naar die parallele poort, hoe dat moet. Dit werkt niet, ook al heb ik het letterlijk gekopieeerd van enkele sites en uit enkele sources voor bijv. het aansturen van stappenmotoren. Maar het lukt gewoon niet, die lampjes gaan niet branden. En ik heb er niets aan dát dat programmaatje werkt, ik moet weten hóé het werkt. :) |
Ik heb de fout ontdekt, het $-teken moest niet voor de waarde van de poort. Het moet dus zijn:
port[956] := 12; ipv port[$956] := 12;. Jeuj. :D Bedankt voor de hulp en zo. :p:) |
Alle tijden zijn GMT +1. Het is nu 16:34. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.