Bascom arbeitet bei Servos mit Bytes,
http://www.rn-wissen.de/index.php/Ba...ide-Code#SERVO
d.h. du solltest für die Servovariablen auch nur bytes verwenden

Dann kannst du die Sache einfacher machen:
Im Prinzip wird das Servo immer durch den Timer auf drei verschiedene werte gestellt ( Z ), die aber festgelegt sind.
da kannst du Z gleich als Index für eine Tabelle verwenden und dir das Select ersparen (allerdings geht Z dann nichtmehr 1-3 sondern von 0-2)
Also, reduziert auf das Servo-handling:
Code:
$regfile = "m48def.dat" 
$crystal = 16000000 
$baud = 9600 

'Servoeinstellungen 
Config Servos = 1 , Servo1 = Portd.6 , Reload = 10 

Servo(1) = 90 

Config Portd.6 = Output 

Enable Interrupts 

'Schrittvariablen 
Dim Z As BYTE 

'Timer 
Config Timer1 = Timer , Prescale = 256                      'Konfiguriere Timer1 
Enable Timer1                                               'schalte den Timer1 ein 
On Timer1 Isr_von_timer1                                    'verzweige bei Timer1 überlauf zu   Isr_von_Timer1 
Timer1 = 3035                                               'Timer1 soll schon von 3035 wegzählen 


Do 
Statusled = 1 

Loop 

End 


Isr_von_timer1:                                             'ISR von Timer1 
    Timer1 = 3035 

    Servo(1) = lookup ( Z,  Servo_tabelle) 
   
    INCR Z            ' Z  + 1 

    If Z > 2 Then 
         Z = 0 
   End If 


Return

Servo_tabelle:
  DATA  90, 110, 130       ' servo-stellungen