hey hab mal n kleinen code geschrieben müsste eig relativ selbst erklärend sein wen was unklar ist einfach frage bitte fersuch mal ob es so funktioniert
Code:
$regfile = "M16def.dat"
$crystal = 8000000

Config Timer1 = Timer , Prescale = 1024                     'hier wird der timer configuriert
Timer1 = 57722

On Timer1 Ontimer1                                          'bei einem timerüberlauf springt der controller zu ontimer0


Config Portd = Input
Config Portc = Output
Dim Zeit As Byte

Taster1 Alias Pind.1
Taster2 Alias Pind.0

Hauptprogramm:
Do
If Taster1 = 0 Then Gosub Relais1
If Taster2 = 0 Then Gosub Relais2
Loop


Relais1:
   Enable Timer1                                            'der timer wird eingeschaltet
   Enable Interrupts                                        'die interrupts werden eingeschaltet (hier nur der timer interrupt ist nötig dass der AVR interrupts zulässt)
   Portc.0 = 1

      Do
         If Zeit < 1 Then                                   ' wen die zeit Über 1 sekunde ist werden der timer und die interrupts wieder deaktiviert
            Disable Timer0
            Disable Interrupts
            Portc.0 = 0                                     'das relai fällt ab
            Goto Hauptprogramm                              'der controller verlässt die do loop schleife und kommt weider zum hauptprogramm zurück
         End If
      Loop
Return


Relais2:
   Enable Timer1
   Enable Interrupts
   Portc.1 = 1
   Do
      If Zeit < 2 Then
         Portc.1 = 0
         Goto Hauptprogramm
      End If
   Loop
Return


Ontimer1:                                                   ' hier der timer interrupt
   Zeit = Zeit + 1                                          ' zeit wird um eins erhöht
   Timer1 = 57722
Return                                                      ' der timer bekommt einen wert dass er nicht die vollen 65535 takte zählen muss das würde länger als eine sekunde dauern
                                           ' der controller kehrt zum programm zurück
müsste so eig funktionieren
einfach für die anderen relais erweitern
wen etwas unklar ist einfach fragen