
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
hallo! ich weiß nicht ob dir das bei deinem Schieberegister hilft ich verwende das CD 4094 a1,a2 usw sind Merker (bit),str,clk,d sind beliebige Ausgänge der CC zB.: a1=on gosub schieben #schieben str=off if a1 then d=off else d=on pulse clk if z1 then d=off else d=on pulse clk if a2 then d=off else d=on pulse clk if z2 then d=off else d=on pulse clk if a3 then d=off else d=on pulse clk if z3 then d=off else d=on pulse clk if aS then d=off else d=on pulse clk if zS then d=off else d=on pulse clk str=on return das funkt. bei mir 100% achtung,bei der Station sind glaube ich die Ports alle mit Kondensator belegt und das könnte die Flanke beeinflussen,da brauchst vielleicht einen Impulsformer oder du entfernst die Kondensatoren mfg Hanns > Hallo, > > viell Ahnung habe ich ja noch nicht. Aber ich will meine Rollladensteuerung über die Station 1 aufbauen. > Also hab ich mir die ELR4SR Platine für 8 Ausgänge an Port 1-3 zugelegt. > Die orig. Test Soft funzt aber nicht, meine Ausgänge machen was sie wollen. Die Eingaben über das Hyper Terminal funktionieren. Ich habe lediglich die Digi Ports von 9; 10; 16 auf 1; 2; 3 geändert! > Weiß jemand was ich falsch mache? -und wie ich die 8 Ausgänge einzeln, aus meinem eigenen Prog heraus ansprechen kann? Würde mich sehr über eine Antwort freuen! > > Tappi > > Hier das original Testprogramm: > > '****************************************************** > '* Beispiel zu Ansteuerung von * > '* SR/PCF-Rel8 (SR-Ver.), ELR4SR und RT4SR * > '* in CC1-Basic, ohne Assembler * > '* http://cctools.hs-control.de * > '* Release: 07.01.02 * > '****************************************************** > > 'Beispiel 1 (Eine Relaiskarte, ELR4SR oder TR4SR): > > define DS Port[9] 'beliebiger anderer Port möglich > define SH Port[10] 'beliebiger anderer Port möglich > define ST Port[16] 'beliebiger anderer Port möglich > 'Diese Portkonfiguration teilt sich zwei Ports mit dem > 'LCD an BytePort2 um Ports einzusparen. > > define rel byte[1] 'Byte-Puffer für rel1 bis rel8 > define rel1 bit[1] 'Relais 1 > define rel2 bit[2] 'Relais 2 > define rel3 bit[3] 'Relais 3 > define rel4 bit[4] 'Relais 4 > define rel5 bit[5] 'Relais 5 (bei ELR4SR & RT4SR Zusatz-LED 1) > define rel6 bit[6] 'Relais 6 (bei ELR4SR & RT4SR Zusatz-LED 2) > define rel7 bit[7] 'Relais 7 (bei ELR4SR & RT4SR Zusatz-LED 3) > define rel8 bit[8] 'Relais 8 (bei ELR4SR & RT4SR Zusatz-LED 4) > define i byte[2] > define x byte[3] > > ' Um mehr als 24 Byte RAM zu erhalten, sollte eine andere Compiler-DLL > ' benutzt werden. Mehr dazu siehe auf http://ccintern.dharlos.de (mehrvars.zip) > > > 'Start > SH=Off > ST=Off > rel=0 > gosub shift > pulse ST > > #loop > put(12) > print "Test-Programm für:" > print "SR/PCF-Rel8(SR-Ver.), ELR4SR & RT4SR" > print "Relais auswählen(1-8): "; > get i 'Zeichen(Ziffer) einlesen > put i 'Echo der Eingabe zurückgeben > if i<&h31 or i>&h38 then goto loop 'prüfen, ob Ziffer im Bereich 1 bis 8 > i=i-&h30 'Ziffer von ASCII-code in Zahl wandeln > print "Relais "; i ; "Status: "; > if (1 shl (i-1)) and rel then print "EIN" else print "AUS" > print "Relais schalten(0-1,andere Eingabe=Abbruch): "; > get x 'Zeichen(Ziffer) einlesen > put i 'Echo der Eingabe zurückgeben > if x<&h30 or i>&h31 then goto loop 'prüfen, ob Ziffer im Bereich 0 bis 1 > x=x-&h30 'Ziffer von ASCII-code in Zahl wandeln > > i=i-1 > on i goto r1,r2,r3,r4,r5,r6,r7,r8 > goto loop > #r1 > rel1=x > goto next > #r2 > rel2=x > goto next > #r3 > rel3=x > goto next > #r4 > rel4=x > goto next > #r5 > rel5=x > goto next > #r6 > rel6=x > goto next > #r7 > rel7=x > goto next > #r8 > rel8=x > #next > > gosub shift > pulse ST > > goto loop > > #shift 'Routine zum seriellen Senden der Daten zur Scheiberegistererweiterung > for i=7 to 0 step -1 > DS=(rel shr i) and 1 > pulse SH > next > return > > > > |
| Antwort schreiben |