So, wenn ich jetzt in die Routine den PWM-Ausgang setze, dann verzählt sich dar µC komischerweise ständig, besonders, wenn ich nur lagsam drehe. Wenn ich das weglasse, zählt er wieder jeden Schritt genau. Hier der Code, den ich bisher zum Testen geschrieben hab:

Code:
regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600

Declare Sub Serial0charmatch()

Config Serialin = Buffered , Size = 30 , Bytematch = 13
Config Porta = Output
Config Pinc.0 = Input
Config Portc.1 = Output
Config Portb.3 = Output
Config Timer1 = Counter , Edge = Rising
Config Timer0 = Pwm , Compare Pwm = Clear Down , Prescale = 8
On Timer1 Count
Enable Timer1
Enable Interrupts

Dim T As Long
Dim Preset As Byte

T = 0
Preset = 1

Waitms 500

Load Timer1 , Preset

Do
!nop
Loop

Count:
  Load Timer1 , Preset
  If Pinc.0 = 1 Then
    T = T + 1
  Else
    T = T - 1
  End If
Return

Sub Serial0charmatch()
   Local Incoming_data As String * 30
   Local Soll As Long
   Local E As Long
   Input Incoming_data Noecho
   Print T
   Soll = Val(incoming_data)
   E = Soll - T
   E = 10 * E
   'Compare0 = 127 - E                <---hier ist der kritische Term, auskommentiert bereitet er Probleme
End Sub
Kann es sein, dass dadurch die Sub zu lange dauert und daher das Programm blockiert? Ich weiß irgendwie nicht, woran das liegen kann...