Habe den Code nochmals angepasst - schon richtig das mit RETURN innerhalb der IF THEN ELSE Section ist unsauber (aber Bascom hats nicht angemeckert)

... habe alles nochmals überprüft und alle möglichen Fehlerquellen eliminiert. Die Signalquelle für das PWM-Signal (mein Servotester) wurde durch den richtigen Empfänger ersetzt ... habe es auch mit einem richtigen Servo gecheckt, ob er sich auch bewegt.
Habe sogar den ATTiny25 durch einen brandneuen Chip ersetzt. Es half Alles nix .. die LED's blinken jetzt mehr oder weniger unkoordiniert. (d.h. die ISR wird angesprungen) ... da das Programm auf dem MEGA8 läuft, vermute ich hier entweder Bascom als Fehlerquelle (vielleicht kommt BASCOmM mit dem Tiny15 nicht klar bzw. erzeugt keinen korrekten Code) oder das Signal am Fernsteuer-Empfänger ist nicht "sauber" oder sieht sogar komplett anders aus (habe leider keinen LA oder Oszi). Ich hoffe mein Tiny25 kommt morgen bei mir an ... dann sehe ich weiter

Code:
Code:
' Auswertung eines PWM-Servosignals (ein Kanal)
' PWM-Signal H-Pegel zwischen ~1ms und 2.5ms
' INT bei wechselnder Flanke


$regfile = "ATtiny15.DAT"                                   ' MC-Definitionen laden
$crystal = 1600000                                          ' Quarzfrequenz (interal Clock 1.6 Mhz)



Config Portb.4 = Output                                     ' Status-LED am Port B.4 (Pin2) grün
Config Portb.3 = Output                                     ' Status-LED am Port B.3 (Pin3) gelb
Config Portb.2 = Input

Config Timer0 = Timer , Prescale = 64                       ' Config Timer0 auf 160 Mikrosekunden pro Takt,
Enable Timer0                                               
                                                              ' bei 1.6MHz: 1/(1.600.000/64) = ein TimerIncrement
                                                              ' alle 40 Mikrosek
                                                              ' zu erwartender Zählerbereich von ~25 bei 1ms PWM
                                                              ' und ~63bei 2.5ms PWM

Config Int0 = Change                                        ' Konfiguration Int0 wechselnde Flanke
Enable Interrupts                                           ' Einschalten der Interrupts
Enable Int0                                                 ' Einschalten Von Interrupt Int0
On Int0 Servowert                                           ' Definition Sprungmarke INT0


Portb.4 = 0                                                 ' beide Ports aus (LED aus)
Portb.3 = 0

Do                                                          ' Hauptschleife
Loop

End


Servowert:                                                  ' Interrupt-Routine (INT0)


If Portb.2 = 0 Then                                         'Timer-Auswertung nur nach HL-Flanke
    If Tcnt0 < 40 Then
       Portb.3 = 0
       Portb.4 = 1
    Else
       Portb.3 = 1
       Portb.4 = 0
    End If
Else                                                        'Ansonsten (nach LH-Flanke): Timer für nächste Runde auf 0 setzen
    Tcnt0 = 0
End If


Return