Robot os. De oneindige lus.
Terwijl de echte %
' instellen of opnieuw instellen van waarden
' input sensor-waardes
' Andere banen
' Doen wat nodig is op basis van invoerwaarden.
wend
Deel I. instellen of opnieuw instellen van waarden.
Deel II krijgen sensor-waardes.
Het lezen van de Input-pinnen
De opdracht voor het lezen van de havens in qbasic is INP. Het adres je lezen moet van is het adres voor de parallelle poort (meestal 378h) + 1; dus is het gebruikelijke adres 379h. Zoals ik voordien vermeldde, zijn de pinnen gebruikt voor input 10-13 en 15. Lezen van de verschillende pinnen is iets moeilijker dan schrijven naar de havens, zoals u hebt om het masker uit de pinnen je niet geïnteresseerd in. Als je de poort leest, worden de eerste 3 bits geretourneerd niet gebruikt. De onderstaande code van qbasic luidt bijvoorbeeld pin 12 (van papier). Wanneer deze poort is hoog, "out of van papier / pin 12 van een knevel gevoorzid" wordt getoond:
data = inp(&h379) IF (data and 32) = 32 then print "Out of paper / pin 12 high"
De onderstaande tabel lijst het pin invoer pin-nummer, het normale doel en het nummer dat vereist is om het te lezen (bv 32 werd gebruikt in het bovenstaande voorbeeld):
Pincode | Normale doel | Aantal te lezen |
10 | Ackowledge | 64 |
11 | Hoge wanneer niet druk | 128 |
12 | Hoog wanneer u niet op papier | 32 |
13 | Hoge wanneer printer online | 16 |
15 | Hoog als zich geen fout | 8 |
Als u binaire begrijpt, moet je onmiddellijk zien waar deze getallen vandaan, en waarom ze worden gebruikt om te maskeren dat alle van de andere pinnen die we niet proberen om te lezen. Het eenvoudigste ding dat u gebruiken kunt om dit te testen is om alleen verbinding maken met een schakelaar tussen een invoer pin en een grond pin (18-25). Bijvoorbeeld, als u verbinding maakt met een schakelaar tussen 15 en 20 pinnen, zou u de volgende code om te controleren wanneer de schakelaar is geduwd:
start: res = INP(&H379) CLS IF (res AND 8) = 8 THEN PRINT "Button pushed" ELSE PRINT "Button NOT pushed" FOR delay = 1 TO 500: NEXT delay GOTO start
Ik weet dat deze code is een beetje rommelig, en zal flikkeren, maar het geschreven voor duidelijkheid. Dezelfde code kan worden gebruikt om te controleren van de andere vier lijningangen door het veranderen van de '8' naar een ander nummer uit de tabel.
Deel III andere banen.
Deel IV
Programma's zoals parcon kunnen we gebruiken om waarden op de parallelle poort voor dergelijke jpbs als het beheersen van de macht-trein. Zie ook: