PicNick,
Ja, ist bekannt. Und was hat das mit Deinem Code zu tun ?
Wenn man mal den original Bascom-Code ansieht:
dann wird dort channel 1..5 verwendet, Dein ASM-Code verwendet dagegen channel 0..4. Das würde nur funktionieren, wenn channel nur eine innerhalb der ISR verwendete Variable wäre und vom restlichen Code nicht angesprochen wird. Das ist aber bereits aus dem Code hervorgehend sehr unwahrscheinlich, denn pro Aufruf der Int0-ISR wird channel um 1 hochgezählt. Was ist dann bei channel = 5 ? Hört dann alles auf, oder muss channel erst überlaufen ?Code:Isr_int0: If Channel > 0 And Channel < 6 Then Empf(channel) = Timer0 End If Timer0 = 6 Incr Channel Return
Also wird channel sehr wahrscheinlich woanders im Code auch verwendet und wenn dem so ist, müssten alle entsprechenden Stellen auf channel 0..4 umgestellt werden.
Das macht man doch nicht so, da ist's doch einfacher der ASM-Code bildet channel 1..5 nach, auch wenn's 'nen Takt mehr kostet.
@Chris,
wo kommt eigentlich das Hochzählen von channel her ? Ist im Bascom-Code nicht zu entdecken.
Lesezeichen