| |
|
|
Rainer Trusch | Ich bin wieder mal bei dem Thema RS232-Schnittstelle. Ziel ist die Steuerung einer Modellbahnanlage (Weichen, Signale) einer Schule. Die Steuerung sollte wenig kosten und auch für Normalschüler verständlich sein. Digitaltechnik fällt unter diesen Gesichtspunkten aus. Die unter [...] gezeigte Schaltung ist verblüffend einfach und ermöglicht die Ansteuerung von theoretisch ..-zig Ausgängen. Der Haken liegt bei meinem Programmversuch darin, dass mit zunehmender Ausgangsanzahl die Sache immer langsamer wird, da die entsprechende Schleife mit jedem zusätzlichen Schaltkreis jeweils acht mal mehr durchlaufen werden muss. Hat jemand eine Lösung? Entweder andere Programmstruktur oder andere Schaltung?
Vielen Dank |
|
|
| |
|
|
|
Frank Abbing | Ersetze mal alle GetFocus durch Clicked. GetFocus brennt sich manchmal fest.
Benutze Operatoren anstelle der Operator-Ersatz-Funktionen. Sowas wie IF @GT(ComHandle&, 1) funktioniert nicht mehr unter XProfan 11 ohne Zusatz-Inc. Then gibt es überhaupt nicht.
Unten steht list% &loop = 0, die Zeile ist fehlerhaft. Jedenfalls ist mir so eine Konstellation nicht bekannt.
Um Geschwindigkeit zu erhalten, könntest du XPIA benutzen. Suche mal danach hier im Forum oder auf meiner Webseite. |
|
|
| |
|
|
|
GDL | Hi,
über kurz oder lang wirste über ein Protokoll (DCC,mfx,mm oder eigenes nicht hinauskommen). Ich experimentiere hier seit Jahren rum. Spätestens bei der ersten Weichenstraße gekoppelt mit Signal und Besetztmelderverriegelung wird es interessant.Und diese Fragen kommen garantiert.
Servus Georg |
|
|
| |
|
|
|
| Siehe auch Hardwarebastelecke [...] |
|
|
| |
|
|
|
Rainer Trusch | @Clicked funktioniert bei mir nicht.? Ist auch nicht das Problem. Es ist wirklich diese
whileloop anzahl%,1,-1 @out32 (BasAdr% + 3, @list% (&loop) * 64) Data @out32 (BasAdr% + 4,1) Clock AN @out32 (BasAdr% + 4,0) Clock aus endwhile
blöde Schleife. Bei einer Anzahl, die größer als 16 ist wird es zäh. |
|
|
| |
|
|
|
Frank Abbing | Clicked sollte mit XProfan 10 funktionieren.
Du lädst die Dll auch gar nicht in den Speicher, sodass sie bei jedem Aufruf immer wieder geladen werden muss. Da geht viel Zeit verloren. Siehe einfach mal UseDll.
Die Schleife kannst du beschleunigen, wenn die Dll noch eine Funktion anbietet, die gleich mehrere Werte annimmt (kenne die Dll nicht), oder wenn du deinen Code mit P2Cpp compilierst (kostet), oder wenn du Inline-Assembler benutzt (erfordert zumindest leichte Assembler-Kenntnisse). |
|
|
| |
|
|
|
Rainer Trusch | Hurra, erste Erfolge! Erst jetzt habe ich Deine Antwort richtig gelesen. Wenn ich die dll lade, gehts wesentlich schneller! Vielen Dank. Ob ich die Assemblersache probiere, weiß ich nicht. Da fehlen mir bestimmt ein paar Windungen und die nötige Zeit.
Gruß Rainer |
|
|
| |
|
|
|
Frank Abbing | |
|
| |
|
|