Hallo,

soetwas hab ich auch schon mal gemacht:

Code:
Dim Puls(10) As Word                                        'Syncimpuls plus 9 Servos
Dim Kanal As Byte

Kanal = 1
      On Icp1 Messen Nosave                                 'Pulslänge messen mit ICP-Eingang
      On Ovf1 Kreset Nosave                                 'Kanalzähler rücksetzen

      Config Timer1 = Timer , Prescale = 1 , Capture Edge = Rising       'rising oder falling anpassen an das Signal



      Enable Ovf1                                           'Overflow-Interrupt
      Enable Icp1                                           'Capture-Interrupt

      Enable Interrupts


Cursor Off
Cls

      Do
       Locate 1 , 1
       Lcd Puls(2) ; " " ; Puls(3) ; " " ; Puls(4) ; " "    'Puls(2) ist Kanal 1, Puls(3) ist Kanal 2 usw.
       Locate 2 , 1
       Lcd Puls(5) ; " " ; Puls(6) ; " " ; Puls(7) ; " "    'Puls(x)=4000 entspricht 1ms, 8000 entspricht 2ms... (4 Mhz Prozessortakt)
      Loop

Messen:
      push r10
      push r11
      push r24
      push r25
      push r26
      push r27
      in r24,sreg
      push r24

      Puls(kanal) = Timer1
      Timer1 = 50000                                        'gilt für 4 Mhz Prozessortakt
      Incr Kanal

      pop r24
      !Out Sreg , R24
      pop r27
      pop r26
      pop r25
      pop r24
      pop r11
      pop r10

     Return


Kreset:
    push r24
    in r24,sreg
    push r24

    Kanal = 1

    pop r24
    !Out sreg,r24
    pop r24
   Return

End
So funktioniert das ganze fehlerfrei.

Das ist mein erster Beitrag, mitlesen tue ich schon lange. Meine Interessen sind hauptsächlich Modellbau/Modellflug und AVR Microcontroller.

Gruß
Günter