Hallo,

ich habe eine Platine, auf der 8 Relais drauf sind und 8 Taster

Die Relais sollen alle unterschiedliche Zeiten anziehen.
Also z.B.
Taster 1 lässt Relais 1 = 1 sec. anziehen
Taster 2 lässt Relais 2 = 2 sec. anziehen
...
Taster 7 lässt Relais 7 = 7 sec. anziehen
Taster 8 lässt Relais 8 = 8 sec. anziehen

Das habe ich mal testweise probiert:
Code:
$regfile = "m16def.dat"
$crystal = 8000000

Config Portc = Output
Config Portd = Input

Taster1 Alias Pind.1
Taster2 Alias Pind.0

Do
if Taster1 = 0 Then Gosub Relais1
If Taster2 = 0 Then Gosub Relais2
Loop

Relais1:
Portc.7 = 1
Waitms 1000
Portc.7 = 0
Return

Relais2:
Portc.0 = 1
Waitms 2000
Portc.0 = 0
Return
Das klappt auch schonmal alles mit den 8 Relais.

Nun zu meinem Problem:
Wenn ich Taster 8 drücke und Relais 8 für 8 Sekunden anzieht, dann bleibt das Programm ja unter Label Relais8 für 8 sekunden hängen und ich kann dann keine anderen Relais anziehen lassen.

Wie kann ich es anstellen, das ich alle Relais so wie ich will ansteuern kann, ohne das die sich gegenseitig blockieren.