Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249684 (11120)
  Suchen
 Zurück zur Übersicht
 AutorThema: umsetzung hakt
Roland,Hilfe....
Datum:27.05.01 12:58 Antwortenals Email verschicken (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




Thorsten
Datum:27.05.01 17:24 Antwortenals Email verschicken (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



Thorsten
Datum: 27.05.01 17:29 Antwortenals Email verschicken (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.




 Zurück zur Übersicht