Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Relaiskarte über Schieberegister funzt nicht Kategorie: C-Control I V1.1 (von Hanns - 4.02.2005 21:44)
 Als Antwort auf Relaiskarte über Schieberegister funzt nicht von Tappi - 1.02.2005 22:57
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
> print
> 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

Bisherige Antworten:

Re: Relaiskarte über Schieberegister funzt nicht (von Tappi - 4.02.2005 23:18)