ich hab hier mal ein bisschen code:

Code:
'--- [ Inizialize compiler ] ---------------------------------------------------
$regfile = "m168def.dat"
$crystal = 16000000
$baud = 9600
$framesize = 32
$swstack = 32
$hwstack = 32

'--- [ Config devices and timers ] ---------------------------------------------

Config Pind.6 = Output
Pwm_out Alias Pind.6

Config Portc.0 = Output
Dira Alias Portc.0

Config Portc.1 = Output
Dirb Alias Portc.1

Audio Alias Portd.5

Config Scl = Portc.5
Config Sda = Portc.4

Config Pinc.3 = Input
Inp_start Alias Pinc.3

Config Pinc.2 = Input
Inp_libelle Alias Pinc.2

Config Portb.0 = Output
Led_red Alias Portb.0

Config Portb.1 = Output
Led_yellow Alias Portb.1

Config Portb.2 = Output
Led_green Alias Portb.2

Inp_stop Alias Pind.2

Phase_a Alias Pind.3
Phase_b Alias Pind.4

'Timer0 as PWM
Tccr0a = &B11000001
Tccr0b = &B00000001
Tcnt0 = &B00000000
Timsk0 = &B00000000
Tifr0 = &B00000000
Ocr0a = 255

'Timer1 as clock
Config Timer1 = Timer , Prescale = 256
Const Clock = 3036

'--- [ Declare SUBs ] ----------------------------------------------------------

Declare Sub Direction(byval Var As Byte)
Declare Sub Speed(byval Var As Byte)
Declare Sub Engine(byval Var As Integer)
Declare Sub Snd(byval Freq As Integer)

'--- [ Declare variables ] -----------------------------------------------------

Dim Daten(30) As String * 19                                'Messdaten

Dim Soll As Integer                                         'Sollwert
Dim Nextsoll As Integer                                     'Nächster Sollwert
Dim Ist As Integer                                          'Ist Position
Dim Hits As Byte                                            'Anschläge
Dim Libelle As Bit                                          'Libelle
Dim Result As Bit                                           'Messungsergebnis

Dim Action As Byte                                          'Aktuelle Aktion
Dim Adminmode As Bit                                        'Administrationsmodus

Dim Buffer As String * 5                                    'RS232 Buffer

Dim Year As Integer                                         'Jahr
Dim Month As Integer                                        'Monat
Dim Day As Integer                                          'Tag
Dim Hour As Integer                                         'Stunde
Dim Minute As Integer                                       'Minute
Dim Second As Integer                                       'Sekunde
Dim Tresult As String * 5                                   'Zeitstring
Dim Dresult As String * 8                                   'Datumstring

Dim B1 As Byte                                              'HV
Dim I1 As Integer                                           'HV
Dim I2 As Integer                                           'HV
Dim S1 As String * 1                                        'HV
Dim S2 As String * 1                                        'HV

Dim Start_setted As Bit                                     'S_HV

'--- [ Inizialize variables and constants ] ------------------------------------

Const Fwd = 1
Const Bwd = 0

Const Limit = 9900
Const Cm_ink = 44

Const Volhigh = 500
Const Volmiddle = 800
Const Vollow = 1500

Start_setted = 0

Soll = 0
Nextsoll = 0
Ist = 0
Hits = 0
Libelle = 0
Result = 0

Action = 0
Adminmode = 0

Buffer = ""

Year = 2000
Month = 1
Day = 1
Hour = 0
Minute = 0
Second = 0
Tresult = ""
Dresult = ""

'--- [ Inizialize Interrupts ] -------------------------------------------------

Sreg.7 = 0

On Int0 Isr_stop                                            'On Rising Edge
On Int1 Isr_incremental_encoder                             'On Pinchange
On Pcint1 Isr_pc1
On Timer1 Isr_clock                                         'On Timer1
On Urxc Isr_data                                            'On Urxc

Eicra = &B00000111
Eimsk = &B00000011
Eifr = &B00000011

Pcicr = &B00000010
Pcifr = &B00000010
Pcmsk2 = &B00000000
Pcmsk1 = &B00001100
Pcmsk0 = &B00000000

Enable Timer1
Enable Urxc

Sreg.7 = 1

'--- [ Start secuence ] --------------------------------------------------------

Echo Off

Gosub Clrdata

Ist = 0

Dira = 1
Dirb = 0
Call Speed(0)
'--- [ Main loop ] -------------------------------------------------------------

Do
 nop
Loop
End

'--- [ Interrupt service routine ] ---------------------------------------------

Isr_incremental_encoder:
  If Phase_b <> Phase_a Then
    Decr Ist
  Else
    Incr Ist
  End If

  If Dira = 1 Then
   If Ist => 1000 Then
    Dira = 0
    Dirb = 1
   End If
  End If

  If Dirb = 1 Then
   If Ist =< 0 Then
    Dira = 1
    Dirb = 0
   End If
  End If

  Print Ist
Return
schaut bitte mal drüber

wegen meinem vorredner
da Bascom ja allenmöglichen schrott mit timer0 anstellt und dann der chip intern crasht? ka? ich kenn das Problem nicht, aber ich muss es finden......

tobi