Autor | Thema: umsetzung hakt | | Datum:27.05.01 12:58 
(ul.Boett@t-online.de) | |
hallo roland, ich wende mich als anfänger am besten direkt an den profanerfinder.ich habe folgendes basic umgeschrieben,nur laufen tut es nicht.wo liegt der fehler?
basic:
declare b%,c%,n%,x%,y%,A$
windowstyle $0230
window SUB(DIV(%MaxX,2),400),SUB(DIV(%MaxY,2),300)-800,600
let c%=@opencom("com2",10000,10000)
@setcom("com2:2400,N,8,2")
@writecom(c%,@chr$(193))
let A$=@readcom$(c%,255))
let x%=@ord(left$(A$,1))
let n%=0
whilenot @gt(n%,7)
let b%=@pow(n%,2)
let a%=@and(x%,b%)
inc n%
if @equ(a%,0)
print "0"
else
print "1"
endif
....
basic war so:
open "com2:2400,N,8,2" for random AS #1
print#1,chr$(193)
a$=INPUT$(2,#1)
B=ASC(LEFT$(A$,1))
for n=7 to 0 step -1
if (B AND (2^N))=0 then prin "0";else print "1"
next n
....
es wird ein befehl ,an com2 gesandt,weiter an das märklin interface,weiter an das rückmeldemodul.dieses gibt seine kontaktstände an das interface zurück welches 1 bzw 2 antwortbytes an die software sendet.diese gibt die kontaktzustände am monitor aus.die ganzen printbefehle habe ich zwecks übersicht weggelassen
da ich kein gesetzter programmierer bin habe ich bestimmt irgendwo murcks gemacht.habe mir die übersetzunf nur per handbuch zusammengestückelt.andere basicteile wwaren rel.leicht umzusetzen
vielen dank für hilfestellungen ulrich
|
| | Datum:27.05.01 17:24 
(galaxy@mrk-soft.de) | |
Hallo,
Aus meine alten Q-Basic Zeiten sollte das
doch für mich kein Problem sein, also
hie die Lösung für dich ...
Hattest dich zum einem in der SCHLEIFE
vertan, läuft rückwärts, zum anderen die
Potenz, die muss 2 ^x sein und nicht
umgekert, x ^2 !!!!
Was hier gemacht wird ist nichts weiter,
als zu prüfen, ob ein Bit (von insg. 8)
gesetzt ist oder nicht.
Viel Spass ....
Thorsten
ps: lass dich nicht durch die kommentare
hinter den zeilen verwirren, die zeigen
nur auf, wies in orginal Basic war.
'Fenster erstellen, variablen declarieren, profan spezifiscch
windowstyle $0230
window SUB(DIV(%MaxX,2),400),SUB(DIV(%MaxY,2),300)-800,600
declare b%,c%,n%,x%,y%,A$
let c%=@opencom("com2",10000,10000) 'com öffnen
@setcom("com2:2400,N,8,2") 'com parameter
@writecom(c%,@chr$(193)) 'sende zeichen
let A$=@readcom$(c%,2) '2 zeichen lesen
let b%=@ord(left$(A$,1)) '1 zeichen
let n%=7
b% = 1
While @gt(n%,-1) 'schleife
let x%=@pow(2,n%) ' errechne bit
let y%=@and(x%,b%) ' und teste mit bit
' in Basic (B AND ( 2^N)) = 0
if @equ(y%,0) ' IF ..... = 0 then
print "0"
else
print "1"
endif
dec n% 'step -1 in Basic bei FOR ... NEXT
Wend
waitkey
|
| | Datum: 27.05.01 17:29 
(galaxy@mrk-soft.de) | |
>hallo roland, ich wende mich als anfänger am >besten direkt an den profanerfinder.ich habe >folgendes basic umgeschrieben,nur laufen tut es >nicht.wo liegt der fehler?
Hi Ulrich,
du solltest auch ruhig den anderen vertrauen,
auch wenn Roalnd Profan Quasi "erfunden" hat,
sind wir Anwender, die schon mehr als 4 Jahre
mit Profan Arbeiten, recht fit darin.
|
|
|