09. september 2006 - 22:35Der er
13 kommentarer og 1 løsning
Oversættelse af code fra Qbasic og til Pascal / Delphi
Jeg har noget kode som er skrevet i Qbasic, men jeg vil gerne have lavet det om til Pascal / Delphi, findes der en metode til dette som er forholdsvis nem at gå til eller er det noget som jeg skal holde mig fra, jeg skal bruge com porten og noget eksternt hardware, det eksterne skal sende nogle signaler tilbage til pc'en og udlæse dette på skærmen.
M.V.H. TLV
P.S. der skal nok komme point på når jeg har fået vished for at det kan lade sig gøre.
Her kommer den så, det skal nok lige tilføjes at det er meget langtid siden at jeg sidst sad og hygge programerede så det kan da godt være at der bliver brug for en del vejledning, også er jeg i tvivl om jeg skal vælge PAS eller DEL, har vistnok en DEL ver 3 eller 4 til at ligge på en cd fra alt om data.
REM ***** Simple Logic Analyzer using RS232 ***** CLS CLEAR DIM CAdr(4), p(4, 3) CAdr(1) = &H3F8: CAdr(2) = &H2F8: CAdr(3) = &H3E8: CAdr(4) = &H2E8:
REM ***** Declare subroutines for Keys <F1> and <F2> ***** KEY(1) ON: ON KEY(1) GOSUB f1 KEY(2) ON: ON KEY(2) GOSUB f2
REM ***** determine COM port ***** LOCATE 10, 8 PRINT "COM port : (1) COM1 (2) COM2 (3) COM3 (4) COM4 : "; DO w$ = INKEY$ LOOP UNTIL (VAL(w$) < 5) AND (VAL(w$) > 0) PRINT "COM"; w$
REM ***** Number of channels to use ***** LOCATE 12, 8 PRINT "Channels (1-4) : "; DO k$ = INKEY$ Channel = VAL(k$) LOOP UNTIL (Channel < 5) AND (Channel > 0) PRINT Channel
REM ***** Sweep mode ***** LOCATE 14, 8 PRINT "Sweep mode: (C)ontinuous / (S)ingle sweep / (P)ause: "; DO meas$ = UCASE$(INKEY$) LOOP UNTIL meas$ = "C" OR meas$ = "S" OR meas$ = "P" PRINT meas$
REM ***** Sample rate delay ***** DO LOCATE 16, 8 INPUT "Delay (0 - 50.000) : ", Delay LOOP UNTIL (Delay >= 0) AND (Delay <= 50000)
HCAdr = CAdr(VAL(w$)) OUT HCAdr + 3, INP(HCAdr + 3) OR 64 FOR w = 1 TO Channel p(w, 1) = w * 80: p(w, 2) = (w * 80) - 50: p(w, 3) = w * 80 NEXT w
REM ***** Measurment ***** SCREEN 9 DO CLS
REM ***** Draw X-axes and write additional text to screen ***** FOR w = 1 TO Channel LINE (0, w * 80)-(640, w * 80), 15, , 255 p(w, 0) = 0 COLOR w + 2, 0 LOCATE 1, 1 + ((w - 1) * 10) PRINT "Channel"; w; NEXT w COLOR 15, 0 PRINT "COM "; w$; " Delay : "; Delay; " Sweep mode : "; meas$ LOCATE 25, 30 PRINT "<F1> Restart / <F2> End"; SPC(20);
REM ***** Draw reference lines **** FOR e = 1 TO 640 STEP 10 LINE (e, 25)-(e, 320), 8, , 1024 NEXT e
REM ***** Draw measured signals ***** FOR i = 1 TO 640 FOR x = 1 TO Channel CState = INP(HCAdr + 6) AND 240 IF CState AND 2 ^ (3 + x) THEN LINE (p(x, 0), p(x, 3))-(i - 1, p(x, 1) - 50), x + 2 p(x, 3) = p(x, 2) ELSE LINE (p(x, 0), p(x, 3))-(i - 1, p(x, 1)), x + 2 p(x, 3) = p(x, 1) END IF p(x, 0) = i NEXT x FOR q = 1 TO Delay NEXT q, i
REM ***** After each sweep: Determine what sweep mode was selected ***** IF meas$ = "p" THEN LOCATE 25, 28 PRINT "Paused! Press any key to continue"; ; SPC(20); SLEEP END IF LOOP UNTIL meas$ = "S" LOCATE 25, 20 PRINT "End of Measurement! Press any key to continue"; SPC(10); SLEEP RUN
REM ***** Subroutine for F1 ***** f1: RUN RETURN
REM ***** Subroutine for F2 ***** f2: SCREEN 0 CLS END CLS RETURN
Ja det har jeg prøvet uden held jeg får kun denne fejlkode description The server encountered an internal error () that prevented it from fulfilling this request.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.